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

运行截图:

相关推荐
spcier3 小时前
图论拓扑排序-Kahn 算法
算法·图论
知星小度S3 小时前
动态规划(一)——思想入门
算法·动态规划
ysa0510303 小时前
动态规划-逆向
c++·笔记·算法
燃于AC之乐3 小时前
我的算法修炼之路--7—— 手撕多重背包、贪心+差分,DFS,从数学建模到路径DP
c++·算法·数学建模·深度优先·动态规划(多重背包)·贪心 + 差分
海上Bruce3 小时前
C primer plus (第六版)第十二章 编程练习第3题
c语言
chinesegf3 小时前
文本嵌入模型的比较(一)
人工智能·算法·机器学习
SundayBear3 小时前
零基础入门MQTT协议
c语言·单片机
我能坚持多久3 小时前
D16—C语言内功之数据在内存中的存储
c语言·开发语言
We་ct4 小时前
LeetCode 6. Z 字形变换:两种解法深度解析与优化
前端·算法·leetcode·typescript
REDcker4 小时前
Redis容灾策略与哈希槽算法详解
redis·算法·哈希算法