首页 > 学院 > 开发设计 > 正文

c语言用辗转相除法实现求最大公约数

2019-11-08 01:10:24
字体:
来源:转载
供稿:网友
1.采用递归方法:
#include<stdio.h>int gcd(int a,int b){	return a<=b?(b%a==0?a:gcd(a,b%a)):(a%b==0?b:gcd(b,a%b));}int main(){	int a,b;	while(1)	{		PRintf("请输入ab两个数:/n");		scanf("%d%d",&a,&b);		if(a<=0 || b<=0) break;		else		{			printf("%d/n",gcd(a,b));		}	}	return 0;}
2.非递归方法:
#include<stdio.h>int main(){	int a,b,temp;	while(1)	{		printf("请输入ab两个数:/n");		scanf("%d%d",&a,&b);		if(a<=0 || b<=0) break;		else		{			while(b!=0)			{				temp=a%b;				a=b;				b=temp;			}			printf("最大公约数是:%d/n",a);		}	}	return 0;}

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表