题目:
题目描述:
写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。
输入:
两个数
输出:
最大公约数 最小公倍数
解题思路:
使用while循环求最大公约数与最小公倍数的方法,想必大家都知道。今天我们来讲讲通过递归算法来求最大公约数与最小公倍数。
原理: gcd(a,b)=gcd(b,a mod b)
当b为0时,两数的最大公约数即为a
参考代码:
#include<cstdio> using namespace std; int gcd(int m,int n) //辗转相除法 { if(n==0) return m; else gcd(n,m%n); //使用三目运算符:return b == 0 ? a : gcd(b, a % b); } int main() { int m,n; scanf("%d %d",&m,&n); printf("%d %d",gcd(m,n),m*n/gcd(m,n)); //最小公倍数=m*n/最大公约数 return 0; }
0.0分
0 人评分
C语言训练-邮票组合问题* (C语言代码)浏览:712 |
点我有惊喜!你懂得!浏览:2248 |
2005年春浙江省计算机等级考试二级C 编程题(3) (C语言代码)浏览:417 |
C语言训练-排序问题<1> (C++代码)浏览:632 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:693 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:562 |
WU-输入输出格式练习 (C++代码)浏览:1133 |
WU-整除问题 (C++代码)浏览:648 |
2005年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:672 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:672 |