辗转相除法:
用法一:求两个数的最大公约数
③m=n=10,n=r=5 得r=m%n=10%5=0
当r=0时的上一个r就是m和n两个数的最大公约数。
例如:int GreatestComDiv(int m,int n)//求最大公约数GreatestComDiv
{
int num;
for(int i=1;i<=m;i++)
{
if(m%i==0 && n%i==0)
{
num = i;
}
}
return num;
上述代码等价于:
int GreatestComDiv(int m,int n)
{
int r;
用法一:求两个数的最大公约数
eg:
已知 ①m=10,n=15 令r=m%n 则r=10%15=10;
②m=n=15,n=r=10 得r=m%n=15%10=5;③m=n=10,n=r=5 得r=m%n=10%5=0
当r=0时的上一个r就是m和n两个数的最大公约数。
例如:int GreatestComDiv(int m,int n)//求最大公约数GreatestComDiv
{
int num;
for(int i=1;i<=m;i++)
{
if(m%i==0 && n%i==0)
{
num = i;
}
}
return num;
上述代码等价于:
int GreatestComDiv(int m,int n)
{
int r;
while((r=m%n)!0)
{
m=n;
n=r;r=m%n;
}
}