0
点赞
收藏
分享

微信扫一扫

辗转相除法求最大公约数

 通过辗转相除法求最大公约数可以减少计算机的运算量,可用递归和非递归两种形式。

1、递归形式

//#include<stdio.h>
//int Gcd(int x,int y)
//{
// int n;
// n=x%y;
//if(n==0)
//{
//return y;
//}
//else
//{
// Gcd(y,n);
//}
//}
//int main()
//{
// int a,b,r,m;
// printf("Please input two integers:\n");
// scanf("%d%d",&a,&b);
// if(a<b)
// {
// r=a;
// a=b;
// b=r;
// }
// m=Gcd(a,b);
// printf("最大公因数为%d\n",m);
// return 0;
//}

2、非递归形式

//#include<stdio.h> 
//int Gcd(int x,int y)
//{
// int n,m,i;
// for(i=1;;i++)
// { n=y;
// m=x%y;
// if(x%y==0) break;
// y=m;
// x=n;
// }
// return y;
//}
//int main()
//{
// int a,b,r,s;
// printf("Please input two integers:\n");
// scanf("%d%d",&a,&b);
// if(a<b)
// {
// r=a;
// a=b;
// b=r;
// }
// s=Gcd(a,b);
// printf("Greatest common divisor is %d\n",s);
// return 0;
//}

辗转相除法:a/b的余数,再除b,知道余数为零时,上一个式子的余数便是最大公约数。














举报

相关推荐

0 条评论