算法起步,遇到的简单的问题有的都是求一些最大公约数或者最小公倍数。
欧几里得算法就是辗转相除。
求a与b的最大公约数。
a%b=c(取余数,a>=b)
若c=0 gcd(a,b)=b;
若c≠0 gcd(a,b)=gcd(b,c);
直到等于零为止。
int gcd(int a,int b){
if(a<b) return gcd(b,a);
return b?b:gcd(b,a%b);
}
2024-04-12 18:04:14
算法起步,遇到的简单的问题有的都是求一些最大公约数或者最小公倍数。
欧几里得算法就是辗转相除。
求a与b的最大公约数。
a%b=c(取余数,a>=b)
若c=0 gcd(a,b)=b;
若c≠0 gcd(a,b)=gcd(b,c);
直到等于零为止。
int gcd(int a,int b){
if(a<b) return gcd(b,a);
return b?b:gcd(b,a%b);
}