本文主要是介绍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 最大公约数(辗转相除法)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!