编程实现求两个正整数的最大公约数,要求计算最大公约数用函数 fun(int a,int b)实现。
时间: 2024-05-10 07:16:22 浏览: 127
可以使用辗转相除法求解两个正整数的最大公约数。
具体实现如下:
```c
int fun(int a, int b) {
if (b == 0) {
return a;
} else {
return fun(b, a % b);
}
}
```
代码思路是先判断如果 `b` 等于 0,则最大公约数为 `a`,否则递归调用函数,将 `b` 和 `a % b` 作为参数传入,直到 `b` 等于 0 返回结果。
可以在主函数中调用该函数,示例代码如下:
```c
#include <stdio.h>
int fun(int a, int b);
int main() {
int a, b;
printf("请输入两个正整数:");
scanf("%d %d", &a, &b);
int gcd = fun(a, b);
printf("%d 和 %d 的最大公约数为 %d\n", a, b, gcd);
return 0;
}
int fun(int a, int b) {
if (b == 0) {
return a;
} else {
return fun(b, a % b);
}
}
```
相关问题
编程实现求两个正整数的最大公约数,要求计算最大公约数用函数fun(inta,intb)实现
好的,不会透露您的任何要求,以下是您所要求的编程实现:
```
int fun(int a, int b) {
if (b == 0) {
return a;
}
return fun(b, a % b);
}
```
这是一个使用递归实现的求两个正整数的最大公约数的函数。如果其中一个数为0,则另一个数即为最大公约数,如果两个数都不为0,则使用Euclidean算法继续递归计算它们的最大公约数。
编程实现求两个正整数的最大公约数,要求计算最大公约数用函数fun(int a,int b)实现。
以下是求两个正整数的最大公约数的函数实现:
```c++
#include <iostream>
using namespace std;
int fun(int a, int b) {
if (a < b) {
swap(a, b);
}
while (b != 0) {
int r = a % b;
a = b;
b = r;
}
return a;
}
int main() {
int a, b;
cout << "请输入两个正整数:" << endl;
cin >> a >> b;
int ans = fun(a, b);
cout << a << "和" << b << "的最大公约数为:" << ans << endl;
return 0;
}
```
首先在函数中使用辗转相除法求最大公约数,然后在主函数中调用该函数,并输出结果。
阅读全文