do-while循环实现求两个正整数的最大公约数
时间: 2023-04-11 10:00:59 浏览: 156
可以回答这个问题。do-while循环实现求两个正整数的最大公约数的代码如下:
```
#include <stdio.h>
int main()
{
int a, b, t;
printf("请输入两个正整数:");
scanf("%d %d", &a, &b);
do
{
t = a % b;
a = b;
b = t;
} while (t != 0);
printf("最大公约数为:%d\n", a);
return 0;
}
```
这段代码使用了辗转相除法求两个正整数的最大公约数。
相关问题
do-while循环求两个数的最大公约数最小公倍数
do-while循环是一种先执行一次循环体,再判断是否继续循环的循环结构。求两个数的最大公约数和最小公倍数可以使用辗转相除法来实现,具体步骤如下:
1. 输入两个正整数a和b;
2. 如果a<b,则交换a和b的值;
3. 使用do-while循环进行辗转相除,直到b等于0为止:
1. 计算a除以b的余数r;
2. 将b赋值给a,将r赋值给b;
4. 最大公约数为a,最小公倍数为a*b。
以下是使用do-while循环求两个数的最大公约数和最小公倍数的示例代码:
```
#include <stdio.h>
int main()
{
int a, b, r, gcd, lcm;
printf("请输入两个正整数:\n");
scanf("%d%d", &a, &b);
if (a < b) {
int temp = a;
a = b;
b = temp;
}
do {
r = a % b;
a = b;
b = r;
} while (b != 0);
gcd = a;
lcm = a * (b / gcd);
printf("最大公约数为:%d\n", gcd);
printf("最小公倍数为:%d\n", lcm);
return 0;
}
```
对于求两个正整数m,n的最大公约数可以用do-while实现。
是的,可以使用do-while循环实现求两个正整数m和n的最大公约数,具体代码如下:
```c
#include <stdio.h>
int main() {
int m, n, remainder;
printf("请输入两个正整数m和n:");
scanf("%d %d", &m, &n);
do {
remainder = m % n;
m = n;
n = remainder;
} while (remainder != 0);
printf("最大公约数为:%d\n", m);
return 0;
}
```
以上代码中,首先通过scanf函数获取用户输入的两个正整数m和n。然后进入do-while循环,每次循环先求出m除以n的余数remainder,然后将n的值赋给m,将remainder的值赋给n,继续循环直到remainder等于0。最后输出m的值即为两个正整数m和n的最大公约数。