作者s3748679 (冷羽憶塵)
看板C_and_CPP
標題Re: [問題]最大公因數
時間Thu Feb 4 09:47:45 2010
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