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

运行截图:

相关推荐
8Qi84 小时前
LeetCode 75:颜色分类(荷兰国旗问题)—— Java 题解 ✅
java·算法·leetcode·指针·排序
888CC++5 小时前
如何在 C 语言中进行程序调试?
前端·javascript·算法
(●—●)橘子……7 小时前
力扣第503场周赛练习理解
python·学习·算法·leetcode·职场和发展·周赛
明志数科8 小时前
4D时序标注技术详解:让机器人理解连续动作的数据基础
java·算法·机器人
KaMeidebaby9 小时前
卡梅德生物技术快报|原核表达系统工艺优化:包涵体重折叠 + 分子筛纯化实现功能 RBD 高效制备,附全参数配置
前端·人工智能·算法·数据挖掘·数据分析
无限码力9 小时前
携程0510笔试真题【单数组交换】
算法·携程笔试·携程笔试真题·携程0510笔试真题
zlinear数据采集卡9 小时前
基准电压电路深度解析:从理论参数到ZLinear采集卡的精准参考实战
c语言·单片机·嵌入式硬件·fpga开发·自动化
BlockWay10 小时前
WEEX Labs 周度观察:微软-OpenAI 合作调整与AI 多云趋势
大数据·人工智能·算法·安全·microsoft
风筝在晴天搁浅10 小时前
快手 CodeTop LeetCode 224.基本计算器
数据结构·算法·leetcode