c語言經典例題練習 2(完全平方數)

2021-10-09 07:22:11 字數 1111 閱讀 3859

題目:乙個正整數,它加上100後是乙個完全平方數,加上168又是乙個完全平方數,請問該數是多少?

分析:首先強調一下,完全平方數和完全數不是乙個 概念,完全平方數:若乙個數能寫成某乙個數平方的形式,那麼這個數就是完全平方數,比如25=5*5,36=6*6,那麼25,36都是完全平方數,另外雖然25=(-5)*(-5),但對於本題不需要區分正負,因為我們本題的關鍵是用的平方數,而不是平方根,所以本題不考慮負平方根的情況;而完全數(又叫完數):它所有的真因子(即除了自身以外的約數)的和(即因子函式),恰好等於它本身,比如1+2+4+7+14=28,28就是完數。關於完數真題知識點鏈結入口

對於本題,思路就是求什麼設什麼,設要求的數是x,由題可得關係式:x+100=m*m,m*m+168=n*n.對於第乙個式子,因為100以上最小的完全平方數是121,所以我們能分析出來x>=21.對於第二個式子,左右移項可變形為(n-m)*(n+m)=168,從這個式子可以知道(n-m)和(n+m)符號相同且其中至少有乙個為偶數。我們假設(n-m)是偶數,通過舉幾個簡單的加減算式例子可以發現,如果兩個數相減後得出的差是偶數,那麼這兩個數的奇偶性一定相同,又因為之前得出過結論:這兩個數中至少乙個為偶數,那麼這兩個數都是偶數;那如果假設(n+m)是偶數呢,一樣的,只有兩個奇偶性相同的數相加才會的出偶數

綜上,(n-m),(n+m)都是正偶數,也就是都》=2.通過列舉發現,只有這幾個符合條件:2*84=168,4*42=168,6*28=168,12*14=168.分別討論即可。

**及執行結果如下:

#include

intmain()

;//這是上面分析的四種情況

int i,b,c,x,m,n;

//這裡將m-n用b表示,m+n用c表示

for(i=

0;i<

4;i++)}

return0;

}

執行結果:

統計某類完全平方數(C語言)

問題簡述 本題要求實現乙個函式,判斷任一給定整數n是否滿足條件 它是完全平方數,又至少有兩位數字相同,如144 676等。函式介面 其中n是使用者傳入的引數。如果n滿足條件,則該函式必須返回1,否則返回0。int isthenumber const int n 輸入樣例 105 500輸出樣例 cn...

C語言重構 279 完全平方數

所有題目源 git位址 題目給定正整數 n,找到若干個完全平方數 比如 1,4 9,16 使得它們的和等於 n。你需要讓組成和的完全平方數的個數最少。給你乙個整數 n 返回和為 n 的完全平方數的 最少數量 完全平方數 是乙個整數,其值等於另乙個整數的平方 換句話說,其值等於乙個整數自乘的積。例如,...

C語言經典例題

學習中碰到的許多例題 include int main return 0 水仙花數的大概演算法就是通過for迴圈提取出每一位數,再利用if語句判斷最後輸出。當然,也可以換一種迴圈,大致就是這樣的演算法。includeint main return 0 利用for迴圈的巢狀還可以,做出許多更強的東西。...