c语言的采用辗转相除法求两个数的最大公约数
#include<stdio.h>
int a(int num1,int num2);
int a(int num1,int num2){
int t;
if(num1<num2){
int t=num1;
num1=num2;
num2=t;
}
while(1){
if(num1-(num1/num2)*num2==0){
return num2;
}else{
t=num1;
num1=num2;
num2=t-(t-(t/num1)*num1);
}
}
}
int main(){
int n1,n2;
scanf("%d %d",&n1,&n2);
printf("%d",a(n1,n2));
return 0;
}
代码可以运行但结果不对
int a(int num1, int num2)
{
int t;
if (num1 < num2)
{
int t = num1;
num1 = num2;
num2 = t;
}
t = num1 % num2;
while (t != 0)
{
num1 = num2;
num2 = t;
t = num1 % num2;
}
return num2;
}