根据如下性质,设计函数MaxCommonFactor(),计算两个正整数的最大公约数。
性质1:当a>b时,计算a与b的公约数等价于计算a-b与b的公约数。
性质2:当a<b时,计算a与b的公约数等价于计算b-a与a的公约数。
性质3:当a=b时,a与b的公约数等于a或b。
#include <stdio.h>int MaxCommonFactor(int a, int b);
main()
{int a, b, x;printf("Input a,b:");scanf("%d,%d", &a, &b);x = MaxCommonFactor(a, b);if (x < 0)  printf("Input Error!\n");elseprintf("%d\n", x);
}int MaxCommonFactor(int a, int b)
{if (a <= 0 || b <= 0)return -1;else if (a != b){if (a > b)return MaxCommonFactor(a - b, b);else if (b > a)return MaxCommonFactor(b - a, a);}else return a;
}

【C语言函数递归】递归计算最大公约数相关推荐

  1. 什么叫c语言函数递归,什么是递归-C语言函数递归-嗨客网

    C语言函数递归教程 函数递归就是一个 C语言函数递归条件 执行一个函数时,就创建一个新的受保护的独立空间(新函数栈). 函数的局部 递归必须向退出递归的条件逼近,否则就是无限递归了. 当一个函数执行完 ...

  2. C语言函数递归调用实验报告,C语言函数的递归和调用实例分析

    一.基本内容: C语言中的函数可以递归调用,即:可以直接(简单递归)或间接(间接递归)地自己调自己. 要点: 1.C语言函数可以递归调用. 2.可以通过直接或间接两种方式调用.目前只讨论直接递归调用. ...

  3. c语言字符串递归例子,c语言函数递归(简单的递归例子c语言)

    若在main函数中调用hanoi(3,'A','B','c')运行结果 void move(char getone,char . 分成三组: (一), 目的:将1号和2号从A移到B 调用函数:hano ...

  4. 对于C语言函数递归的简单理解(新手入门必看!!!)

    什么是函数递归? 程序调用自身的编程技巧称为递归(recursion). 递归做为一种算法在程序设计语言中广泛应用. 一个过程或函数在其定义或说明中有直接或间接 调用自身的 一种方法,它通常把一个大型 ...

  5. 【17】C语言 | 函数递归题

    目录 函数递归:就是函数自己调用自己 下面我们通过几个例子了解一下函数递归 1 [下面代码输出什么?] 2[数9的个数] 3 [分数求和] 4 [求10个整数中最大值] 5 [屏幕上输出乘法口诀表] ...

  6. C语言函数递归—经典递归问题

    目录 一.什么是递归? 二. 汉诺塔问题 2.1 认识什么是汉诺塔 2.2 汉诺塔打印步数 2.3 汉诺塔打印步骤 三.青蛙跳台阶问题 一.什么是递归? 这里我们先简单的认识一下什么是函数递归:我们可 ...

  7. c语言函数递归相关知识及应用

    文章目录 一.函数递归理论知识 1.函数递归概念 2.函数递归的几点注意 二.函数递归的应用 1.使用递归完成n的阶乘 2.用递归方式实现打印一个整数的每一位 3.写一个递归函数输入一个非负整数,返回 ...

  8. C语言用递归求最大公约数

    如果对其他经典算法感兴趣,可以点击我的主页,有惊喜哟 直接上代码: #include<stdio.h>//用递归求最大公约数 int gcd(int m,int n)//定义两个整型变量 ...

  9. 【C语言函数递归】编程将字符串s倒序输出,要求利用函数递归实现。

    编程将字符串s倒序输出,要求利用函数递归实现. **输入格式要求:"%s" 提示信息:"input your string:\n" **输出格式要求:" ...

最新文章

  1. 记一次有惊无险的 JVM 优化经历!
  2. 手把手教渗透测试人员打造.NET可执行文件
  3. django的哲学很耐人回味
  4. 4kyu Sum by Factors
  5. 【译】The missing explanation of Proof of Stake Version 3
  6. EventLoopGroup 的实例化
  7. 李洪强漫谈iOS开发[C语言-025]-赋值运算符案例
  8. Redis简介及安装
  9. html5如何新建定义站点,HTML5技术教程:创建新作品_HTML5教程_创建作品_添加元素_课课家...
  10. scala 模式匹配详解 1
  11. [bzoj 2768][bzoj 1877]
  12. 物联网时代 公共建筑应该改变些什么
  13. 转:华 为 路 由 常 用 命 令
  14. matlab EOF程序
  15. Jenkins 下载慢解决方法
  16. 绘画和照片编辑:Artstudio Pro for mac
  17. Wake On Lan 网络唤醒 远程开机功能设置教程
  18. 在分析仪中创建用户自定义的TRL校准件【以RS矢量网络分析仪为例】
  19. JAVA自行车租借管理系统计算机毕业设计Mybatis+系统+数据库+调试部署
  20. 【C++/数据结构】先序遍历+中序遍历构建二叉树

热门文章

  1. 3.1、立项管理内容
  2. 413 request entity too large php,413 Request Entity Too Large
  3. 你不能错过的高效率工具:第1期
  4. MATLAB Floor 用法
  5. ceil函数和floor函数的用法
  6. VS+OpenCV+VC超详细的配置教程
  7. 考试报名管理系统C语言顺序表,学生信息管理系统(顺序表)实验
  8. Windows配置端口转发绕过samba 445端口限制共享linux磁盘
  9. 日志分析篇---Web日志分析
  10. [教学] 以远程工作模式教你实战编程经验