当前位置: 首页 > web >正文

C语言| 递归求两个数的最大公约数

C语言| 函数的递归调用

【递归求两个数的最大公约数】
难点在于如何呈现出求解最大公约数
数学上求解两个数的最大公约数有多种方法,包括辗转相除法、相减法、穷举法等。

辗转相除法,也称为欧几里得算法,是求解最大公约数的经典方法。具体步骤如下:
1 取两个数中较大的数作为除数,较小的数作为被除数。
2 用较大的数除以较小的数,如果余数为0,则较小的数即为这两个数的最大公约数。
3 如果余数不为0,则用较小的数除以上一步计算出的余数,直到余数为0。此时,上一步的余数即为这两个数的最大公约数。

【分析过程】
自定义一个函数ZDGYS()求解最大公约数,主函数再直接调用它。

  [ZDGYS()函数]
  不断取余,直到余数为0.
  mod=m%n;m=n; n=mod;不断带进去计算,直到出现余数为0。
  举例 m=20, n=15
  mod=m%n=20%15=5; m=n=15; n=mod=5;
  mod=m%n=15%5=0; m=n=5; n=mod=0;
  所以最大公约数为5.

【程序代码】

#include <stdio.h>

int ZDGYS(int m, int n); //函数声明

int main(void)
{
    int m, n;
    
    printf("请输入m,n的值:");
    scanf("%d %d", &m, &n);

    printf("m=%d,n=%d,它们的最大公约数为%d\n", m, n, ZDGYS(m,n));

    return 0;
}

int ZDGYS(int m, int n)
{
    if(m%n == 0)
    {
        return n;
    }
    else
    {
        return ZDGYS(n, m%n);
    }
}

http://www.xdnf.cn/news/4500.html

相关文章:

  • 17.Three.js 光照系统之《LightProbe》详解指南(含 Vue 3示例)
  • 准确--Notepad++ 实用的插件介绍
  • 【论文阅读】HunyuanVideo: A Systematic Framework For Large Video Generative Models
  • Linux系统安装指南
  • vue2中的组件注册
  • Landsat WRS介绍 及 Polygon定位WRS算法
  • WPF MVVM入门系列教程(六、ViewModel案例演示)
  • [Windows] 蓝山看图王 1.0.3.21021
  • JGL021垃圾渗滤液小试实验装置
  • 三、大模型原理:图文解析MoE原理
  • NGINX `ngx_http_charset_module` 字符集声明与编码转换
  • 【CSS】Grid 的 auto-fill 和 auto-fit 内容自适应
  • goland无法debug
  • 做PPT的感想
  • 在IPv6头部中,Next Header字段
  • 基于 ISO 22301 与国产化实践的 BCM 系统菜单设计指南
  • 计算机网络中相比于RIP,路由器动态路由协议OSPF有什么优势?
  • 服务器数据恢复—硬盘坏道导致EqualLogic存储不可用的数据恢复
  • 2023年华为杯研究生数学建模竞赛B题DFT类矩阵的整数分解逼近
  • ActiveMQ 源码剖析:消息存储与通信协议实现(二)
  • 英伟达发布Llama-Nemotron系列新模型,性能超越DeepSeek-R1
  • 初学Python爬虫
  • Spring AI 之 AI核心概念
  • 第十一节:图像处理基础-图像阈值处理
  • ES6入门---第三单元 模块七: Proxy的使用+Reflect的使用
  • 【备考高项】模拟预测题(二)综合知识及答案详解
  • PostgreSQL 常用SQL操作命令
  • 南京市出台工作方案深化“智改数转网联”,物联网集成商从“困局”到“蓝海”!
  • Linux 安全加固
  • Python与C++类型对照及常用操作