no.3
乙個整數,它加上100後是乙個完全平方數,再加上168又是乙個完全平方數,請問該數是多少?我拿到題目的第乙個想法就是順著題目思路寫出數學關係式,只要保證等號右邊的式子是整數的平方就可以了,而這我選擇了找乙個較大的整數範圍進行遍歷,造成的後果就是執行很慢很慢很慢,而且我的做法不能找負數。
#include
intmain()
}}
標準答案:
執行的真的很快,是我沒想到的方法,淦!
程式分析:
假設該數為 x。
1、則:x + 100 = n * n, x + 100 + 168 = m * m
2、計算等式:m * m - n * n = (m + n)(m - n) = 168
3、設定: m + n = i,m - n = j,i * j =168,i 和 j 至少乙個是偶數
4、可得: m = (i + j) / 2, n = (i - j) / 2,i 和 j 要麼都是偶數,要麼都是奇數。
5、從 3 和 4 推導可知道,i 與 j 均是大於等於 2 的偶數。
6、由於 i * j = 168, j>=2,則 1 < i < 168 / 2 + 1。
7、接下來將 i 的所有數字迴圈計算即可。
但是我覺得有點難想到這個方法(如果在一點提示都沒有的情況下),演算法很巧妙。
#include
int main ()}
}return0;
}
bingo!
逃課學習,收穫快樂!
c語言10個經典小程式
程式1 題目 有1 2 3 4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?1.程式分析 可填在百位 十位 個位的數字都是1 2 3 4。組成所有的排列後再去 掉不滿足條件的排列。2.程式源 main 程式2 題目 企業發放的獎金根據利潤提成。利潤 i 低於或等於10萬元時,獎金可提1...
c語言10個經典小程式
程式1 題目 有1 2 3 4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?1.程式分析 可填在百位 十位 個位的數字都是1 2 3 4。組成所有的排列後再去 掉不滿足條件的排列。2.程式源 複製 如下 main 程式2 題目 企業發放的獎金根據利潤提成。利潤 i 低於或等於10萬元時...
一名初學C 小菜鳥在牛客網上的一些錯題見解
1.識別符號問題 1.識別符號的第乙個字元必須是字母或下劃線,後面的字元可以是字母 數字或下劃線,不能為其它字元。2.識別符號的長度可以是乙個或多個字元,最長不允許超過32個字元。3.識別符號不能和c語言的關鍵字相同,也不能和使用者自定義的函式或c語言庫函式同名。2.linux下檔案的讀寫 chmo...