计算两个数的 GCD 的程序。
#include<stdio.h>
#include<conio.h>
int findgcd(int x,int y)
{
while(x!=y)
{
if(x>y)
{
return findgcd(x-y,y);
}
else
{
return findgcd(x,y-x);
}
}
return x;
}
void main()
{
int n1,n2,gcd;
clrscr();
printf("\n GCD Calculator [ Please Enter Positive Integer number. ]\n");
printf("\nEnter 1st numbers: ");
scanf("%d",&n1);
printf("\nEnter 2nd numbers: ");
scanf("%d",&n2);
if(n1>0 && n2>0)
{
gcd=findgcd(n1,n2);
printf("\nGCD of %d and %d is: %d ",n1,n2,gcd);
}
else
{
printf("\n Sorry, Wrong Input.");
}
getch();
}
是否有另一种方法可以在 C 中使用递归计算两个数字的 GCD。
或者,如果没有递归,我怎么能以简单的方式编写这个程序?