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;
}

运行截图:

相关推荐
动词ing11 分钟前
【C语言】结构体+文件基础
c语言·开发语言·数据结构
caimouse27 分钟前
ReactOS 窗口系统分析(7):分层窗口与绘制辅助 — layered.c + draw.c
c语言·开发语言
夜不会漫长1 小时前
C++入门(1)
开发语言·c++·算法
wen_zhufeng2 小时前
IndexTTS 2.5 技术报告
人工智能·算法·机器学习
大熊背3 小时前
树莓派相机自动白平衡详解(四)
算法·树莓派·白平衡·isppipeline
一米阳光86613 小时前
软考(中级)软件设计师核心笔记(9)算法——背包问题
笔记·算法·职场发展·软考·软件设计师·中级职称
晚风醉蝶3 小时前
1-11-奇偶排序-OddEvenSort
java·数据结构·算法
旖旎夜光3 小时前
LeetCode 852:山脉数组的峰顶索引(二分查找) —— 题解
数据结构·c++·算法·leetcode·二分查找
..Dauntless..3 小时前
【C++】继承——基类和派生类的配合
开发语言·c++·算法
不灭的黄金瞳1234 小时前
预处理详解
c语言