程c++程序设计,从键盘任意输入的两个正整数,求其最大公约数,要求计算最大公约数的函数Gcd()使用递归方法,在主函数中调用该函数计算并输出最大公约数。
时间: 2024-03-01 08:55:21 浏览: 67
好的,下面是完整的C++程序代码:
```c++
#include <iostream>
using namespace std;
// 递归计算最大公约数
int Gcd(int a, int b) {
if (b == 0) {
return a;
} else {
return Gcd(b, a % b);
}
}
int main() {
int a, b;
cout << "请输入两个正整数:" << endl;
cin >> a >> b;
int result = Gcd(a, b);
cout << "它们的最大公约数是:" << result << endl;
return 0;
}
```
这个程序使用了递归方法计算最大公约数,即在函数 `Gcd()` 中,如果其中一个数为0,就直接返回另一个数,否则就通过递归调用自身,将两个数的模作为新的参数传入,直到其中一个数为0为止。在主函数中,首先从键盘输入两个正整数,然后调用 `Gcd()` 函数计算它们的最大公约数,并输出结果。
希望这个程序能够帮到你!
相关问题
C++程序设计,从键盘任意输入的两个正整数,求其最大公约数,要求计算最大公约数的函数Gcd()使用递归方法,在主函数中调用该函数计算并输出最大公约数。
下面是代码实现:
```c++
#include <iostream>
using namespace std;
int Gcd(int a, int b)
{
if (b == 0) {
return a;
} else {
return Gcd(b, a % b);
}
}
int main()
{
int a, b;
cout << "请输入两个正整数:" << endl;
cin >> a >> b;
cout << a << "和" << b << "的最大公约数为:" << Gcd(a, b) << endl;
return 0;
}
```
首先在主函数中从键盘输入两个正整数a和b,然后调用函数Gcd()计算它们的最大公约数,并输出结果。函数Gcd()使用递归的方式实现,当b等于0时,a就是最大公约数;否则,递归计算b和a%b的最大公约数。
从键盘任意输入两个正整数m和n,求其最大公约数和最小公倍数
根据引用,我们可以通过输入两个正整数,利用公式求出它们的最小公倍数和最大公约数。最大公约数可以通过辗转相除法求解,具体步骤如引用所述。最小公倍数可以通过两个数的乘积除以它们的最大公约数得到。因此,我们可以按照以下步骤回答这个问题:
输入两个正整数m和n,利用辗转相除法求出它们的最大公约数。
```
// 代码类型:C++
#include <iostream>
using namespace std;
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
int main() {
int m, n;
cin >> m >> n;
int g = gcd(m, n);
cout << g << " ";
cout << m * n / g << endl;
return 0;
}
```
其中,gcd函数用于求最大公约数,m * n / g用于求最小公倍数。
阅读全文