北航計算機機試2011

2021-09-12 06:46:13 字數 1101 閱讀 1964

//程式保留在fushic2011.cpp中

1.孿生數

【問題描述】

孿生數定義: 如果 a 的約數(因數,包含1,但不包含a本身)之和等於 b , b 的約數(因數)之和等於 a , a 和 b 稱為孿生數(a和b不相等)。試找出正整數 m 和 n 之間的孿生數。

輸入:從控制台輸入兩個正整數m和n(1<=m輸出:

在標準輸出上輸出符合題目描述的m和n之間的全部孿生數對(包括m和n)。每行輸出一對孿生數,用乙個空格隔開,小的先輸出;各行孿生數按照第乙個數從小到大的順序輸出,一對孿生數隻輸出一次。 如果沒有符合要求的孿生數對,則輸出字串「none」。

輸入樣例

20 300

200 250

輸出樣例

220 284

none

樣例說明

樣例1輸入的區間為[20,300],其間有一對孿生數對,即:220(1+2+4+5+10+11+20+22+44+55+110=284)和284(1+2+4+71+142=220)。樣例2輸入的區間是[200,250],其間沒有孿生數對,所以輸出字串:none。

//方法一,不用陣列

#includeconst int maxn=20000;

int sum(int k)

return sum;

}bool deal(int i,int j)

int main()

}} if(f==false)printf("none\n");

} return 0;

}

//方法二:先建立乙個陣列,保留其下標所代表的的數的因數之和。

#includeint main();

for(i=m;i<=n;i++)

for(i=m;i<=n;i++),b[maxn][maxn]=,i,j;

void deal(int m,int n,int k,int g,int r, int c)

void deal(int &i)

printf("%c",a[i]);

} printf("\n");

}return 0;

}

北航計算機機試2012

vc fushic18 1.分解整數 某些整數能分解成若干個連續整數的和的形式,例如 15 1 2 3 4 5 15 4 5 6 15 7 8 某些整數不能分解為連續整數的和,例如 16 輸入 乙個整數n n 10000 輸出 整數n對應的所有分解組合,按照每個分解中的最小整數從小到大輸出,每個分解...

北航計算機機試2010

1.泰勒求cos x 利用泰勒公式求cos x 1 x2 2 x4 4 重要的就是注意細節 比如階乘的儲存最好用double型別 include includedouble fun int i return mul double cos int x while fabs temp 1e 6 retu...

北航計算機機試2016

1.逆序數 描述 給定乙個數n,將這個數的各位順序顛倒,稱為逆序數m。例如1234的逆序數是4321。輸入 輸入乙個數n,n開頭無多餘的0 0 n 1000000000 輸出 如果m是n的k倍 k為整數 那麼輸出n k m。如果m不是n的整數倍,那麼輸出n和n的逆序數。樣例 輸入1 1204 輸出1...