辗转相除法思路:
1、有两个数a,b,如果b为0,计算结束,a是最大公约数
2、否则,让a除以b,a等于b,b等于余数
3、回到第一步
代码:
#include<stdio.h>
int main()
{
int a , b;
int t;//存放余数
scanf("%d %d",&a ,&b);//输入a,b
if( b == 0 ){ //如果b为0
printf("%d",a);//则最大公约数就是a
} else{ //否则
while(b!=0){ //当b不为0时
t = a%b; //a除以b,余数为t
a = b; //b的值赋给a
b = t; //t的值赋给b
}
printf("%d",a); //输出最大公约数
}
return 0;
}
测试:
本节学习参考浙江大学翁恺老师的《C语言》,与老师代码并不是一模一样,可能会出现错误,望指正。