本帖最後由 domen111 於 2014-9-21 10:30 編輯
附上我之前做過的研究
遞迴那麼簡短又好寫的方法你居然沒提到! gcd_3這種方法我覺得太不直觀自己要寫出來會很麻煩
[C++] 純文本查看 復制代碼 #include<algorithm>
#include<cmath>
using namespace std;
int gcd_1(int a,int b)//遞迴,我最習慣的,time:849
{
if(b==0)return a;
return gcd_1(b,a%b);
}
int gcd_2(int a,int b)//迴圈,time:1130
{
//注意:需要<algorithm>,<cmath>
while(b)swap(a%=b,b);
return abs(a);
}
int gcd_3(int a,int b)//迴圈,time:848
{
while((a%=b)&&(b%=a));
return a+b;
}
int main(){}
|