c语言中求最大公约数的思路,c语言中怎么求两个数的最大公约数

首页 > 经验 > 作者:YD1662024-03-30 10:00:38

用户输入两个数,求这两个数的最大公约数。

c语言中求最大公约数的思路,c语言中怎么求两个数的最大公约数(1)

#include <stdio.h>

int gcd(int a, int b);

int main() {

int a, b;

printf("请输入两个正整数:\n");

scanf("%d %d", &a, &b);

if (b > a) {

int temp = a;

a = b;

b = temp;

}

printf("%d 和 %d 的最大公约数是 %d\n", a, b, gcd(a, b));

return 0;

}

int gcd(int a, int b) {

int temp;

while (b != 0) {

temp = a % b;

a = b;

b = temp;

}

return a;

}

在计算最大公约数时,两个数的大小关系并不影响计算结果。因此,我们可以在程序中对输入的两个数进行大小比较,并将较大的数赋值给 a,较小的数赋值给 b,从而确保 a 是较大的数。

在修改后的代码中,我们使用了一个 if 语句来判断 b 是否大于 a,如果是,则交换 ab 的值。这里我们使用了一个中间变量 temp 来完成交换操作。最后,我们调用 gcd 函数,求解两个数的最大公约数,并输出结果。

需要注意的是,如果输入的两个数相等,则它们的最大公约数就是它们本身,因此在程序中没有对这种情况进行特殊处理。

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.