递归求正整数 a 和 b 最大公约数(辗转相除法)"/>
C语言实现用递归求正整数 a 和 b 最大公约数(辗转相除法)
完整代码:
// 用递归求正整数 a 和 b 最大公约数。
#include<stdio.h>//求最大公约数这里采用的是辗转相除法,也叫欧几里德算法int func(int a,int b){//当a取模b为零是说明b就是a的最大公约数if (a%b==0){return b;}//其他情况时,将a替换为b,b替换为a%b继续继续辗转相除//b>a时,这一步也可以将它们互换,此时a%b=a,即func(a,b)-->func(b,a)然后再继续辗转相除return func(b,a%b);
}int main()
{int a,b;printf("请输入正整数a\n");scanf("%d",&a);printf("请输入正整数b\n");scanf("%d",&b);printf("%d与%d的最大公约数是%d",a,b,func(a,b));return 0;
}
运行截图:
更多推荐
C语言实现用递归求正整数 a 和 b 最大公约数(辗转相除法)
发布评论