本five就是仓鼠🐹本人orz
最大公约数的求解(真是漂亮的循环啊🐱💻
算法一:辗转相除法
#include <stdio.h>
int main()
{
//初始化
int a,b;
int t;
scanf("%d %d",&a,&b);
while(b!=0){
t = a%b;
a = b;
b = t;
// printf("a=%d,b=%d,t=%d",a,b,t);
}
printf("%d",a);
return 0;
}
算法二:枚举法
#include <stdio.h>
int main()
{
//初始化
int a,b;
printf("请输入两个正整数:");
scanf("%d %d",&a,&b);
int min;
if(a>b){
min=b;
}else{
min=a;
}
int i;
int count = 0;
for(i=1;i<=min;i++){
if(a%i == 0){
if(b%i == 0){
count = i;
}
}
}
printf("%d和%d的最大公约数是%d:",a,b,count);
return 0;
}
总结:辗转相除法占用的内存小且快速,是更优秀的选择啦~