编写函数求两个数的最大公约数,采用递归法计算两数的最大公约数。
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
题目:
[实验案例3:函数的递归调用]
编写函数求两个数的最大公约数,采用递归法计算两数的最大公约数。
[实验指导]
分析:m、n为两个数,用辗转相除法求其最大公约数:将m、n中的大数放入m中,m为被除数,r=m%n。本案例采用递归法定义递归函数gcd( )求最大公约数。求m和n的最大公约数等价于求n与(m mod n)的最大公约数,则有gcd(m,n)函数等价于gcd(n,(m mod n))函数。递归调用函数gcd( )中递归构成如下:
1. 当m%n==0时,结束递归gcd(m,n)=n;
2. 否则,继续递归调用gcd(m,n)=gcd(n,(m mod n))。
代码:
/*编写函数求两个数的最大公约数,采用递归法计算,文件名sy7-3.c */
#include <stdio.h>
#include <math.h>
int main() /*定义主函数*/
{double gcd(double, double); /*函数原型*/double m,n,g;printf("请输入整数m、n的值: ");scanf("%lf%lf",&m,&n);g=gcd(m,n); /*调用gcd( )函数*/printf("gcd(%2.0f,%2.0f) =%5.0f ",m,n,g) ;return 0;
}
double gcd(double a,double b) /*定义gcd( )函数*/
{if(b==0) /*递归调用终止条件*/return(a);else return(gcd(b,fmod(a,b))); /*递归调用*/}
结果:
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了函数的递归调用。
编写函数求两个数的最大公约数,采用递归法计算两数的最大公约数。相关推荐
- python编写函数求n阶调和数_Python实现调和级数的计算
最近在复习数学分析的时候,看到调和级数是发散的,想起上学期学过的python,于是想用python来实现调和级数的简单计算. 首先补充一下调和级数的定义吧: Sn=1+1/2+1/3+1/4+...+ ...
- 【勇敢牛牛,不怕困难】有手就行栏目:头歌教学平台 - 湖南工业大学刘强老师的C语言函数实战课堂作业答案 - > - > {求和+回文数计算+编写函数求表达式的值+阶乘数列+亲密数+公约数公倍数求解}
第一关:求和 任务描述 题目描述:给你一个n,要求你编写一个函数求1+2+-+n. 输入 输入一个n 输出 输出1+2+-+n的和 测试说明 样例输入: 100 样例输出: 5050 分析: 这个是真 ...
- c语言中求大于的函数,c语言编写函数,求一组数中大于平均值的数的个数.
C语言编写程序 给定一组数,求大于0,等于0,小于0的数据个数 #define N 10 main(){int num1=0,num2=0,num3=0,i;for(i=0;i 一道C语言题目:求一组 ...
- mysql编写函数 求1 n 偶数之和,编写求1 2 3 - n的函数.在main函数中调用该函数
输入两个正整数m,n,编写求阶乘的函数,计算m!/(n!*(m-n)!). C语言函数解答,谢谢. #includelongfactorial(intm,intn){longsum=1,sum1=1; ...
- c语言学习-自定义并调用函数求三个数的最小公倍数
c语言自定义并调用函数求三个数的最小公倍数 程序流程图: 代码: #include<stdio.h> int la1(int m ,int n,int p); int la2(int m ...
- EduCoder-程序设计技术R-函数-(第1关:求和)(第2关:回文数计算)(第3关: 编写函数求表达式的值)(第4关:阶乘数列)(第5关:亲密数)(第6关:公约公倍数)
目录 第1关:求和 代码示例 第2关:回文数计算 代码示例 第3关: 编写函数求表达式的值 代码示例 第4关:阶乘数列 代码示例 第5关:亲密数 代码示例 第6关:公约公倍数 代码示例 第1关:求和 ...
- 实验2.5 用递归的方法编写函数求Fibonacci 级数,观察递归调用的过程
题目 用递归的方法编写函数求Fibonacci 级数,观察递归调用的过程 AC的C++代码如下: #include<iostream> using namespace std; int f ...
- 使用匿名函数求三个数的最大值
使用匿名函数求三个数的最大值: x=input("第一个数:") y=input("第二个数:") z=input("第三个数:") a=( ...
- 编写函数求特殊a串和
6-1 编写函数求特殊a串和 前言 学习python的日常 提示:以下是本篇文章正文内容,下面案例可供参考 题目: 给定两个均不超过9的正整数a和n,要求编写函数fn(a,n) 求a+aa+aaa++ ...
最新文章
- 关于数据库中NULL的描述,下列哪些说法符合《阿里巴巴Java开发手册》
- 写作MIMO,LDPC误码率仿真
- 使用jmeter对ActiveMQ集群性能方案进行评估--转载
- 【转】名企献身说法:我们喜欢这样的简历
- linux superblock 时间,Linux命令(八)
- 易安卓 html5,Developing a Multi Platforms Web Applications for Mobile Device Using HTML5
- Ubuntu18使用docker快速安装oracle 11g
- LeetCode栈专题-1(go/py3/c++)
- webpack多个Html,使用webpack构建多页面应用
- java object怎么拿字段_「Java面试秘籍」String不可变,如何理解
- python全套教程大全-千锋出品全套python视频教程,400大全集,你了解吗?
- hibernate 反向生实体类 and 为什么老是多一个id
- AWS中国EC2 80端口无法访问
- 多态性练习:定义一个基类BaseClass,从他派生出类DerivedClass。BaseClass有成员函数 fn1(),fn2()
- excel 自动生成目录
- 美国主要经济数据解注释
- 跨越信息沟通的障碍,构建企业高效应用平台
- 安利几本好看的书给你
- 【unmatched host】nfs挂载 提示“: refused mount request from xx for /nfsdata (/nfsdata): unmatched host ”
- 广西桂林公安:借力大数据 构建大平安