看板 C_and_CPP 關於我們 聯絡資訊
orz...看起來我寫法好像比較不一樣說 Code: #include <iostream> using namespace std; int GCF(int a, int b); int main() { cout << "請輸入兩個正整數: "; int a, b; cin >> a >> b; cout << "最大公因數: " << GCF(a, b) << endl; system("pause"); return 0; } //輾轉相除法 int GCF(int a, int b) { while(true){ //直到a或b其中一方為0,否則將繼續下去 if (a>b) a = a % b; else b = b % a; if (a==0) return b; if (b==0) return a; } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.164.72.188
VictorTom:差不多吧, 你只是沒有swap確保大的數做被除數, 所以GCF 02/04 10:10
VictorTom:裡才要兩個if(?==0); 話說, 最大公因數不是 GCD 嗎..XD 02/04 10:11
s3748679:G.C.F. = greatest common factor 02/04 10:17
s3748679:@@" 那就GCD吧... (看來我一直搞錯說XDD) 02/04 10:24
s3748679:不過google查起來 GCF好像也對.. 02/04 10:25
VictorTom:雄雄想起過去那段老搞不清楚 GCD 與 LCM 的日子....Orz 02/04 10:29
s3748679:嗯... 我國中數學那兩種東西破破的說 02/04 10:41
andyisman:改成 while(a && b) 然後return a+b 也可以喔XD 02/04 12:48