更相减损之术
约分的法则是:若分子、分母均为偶数时,可先被2除,否则,将分子与分母之数列在它处,然后以小数减大数,辗转相减,求它们的最大公约数,用最大公约数去约简分子与分母。
辗转相除法
1.a÷b,令r为所得余数(0≤r<b)。若r=0,算法结束;b即为答案。
2.互换:置a←b,b←r,并返回第一步
//更相减损法
int gcd(int a,int b)
{
while(a!=b)
{
if(a>b)
a-=b;
else
b-=a;
}
return a;
}
//辗转相除法--递归
int gcd(int a,int b)
{
if(b==0)
return a;
else
return gcd(b,a%b);
}
//辗转相除法--纯循环
int gcd(int a,int b)
{
int r;
while(b!=0)
{
r=a%b;
a=b;
b=r;
}
return a;
}
http://blog.csdn.net/zhaobisha/archive/2008/11/10/3269661.aspx