c语言求最大公约数辗转相除法

以下c语言求最大公约数辗转相除法代码实现了使用 C 语言通过辗转相除法求解多个整数的最大公约数的需求。它定义了一个函数 gcd,该函数接受两个整数作为输入,使用辗转相除法的思想来计算它们的最大公约数,并在主函数中读取用户输入的整数个数和各个整数的值,然后通过循环依次对这些整数进行求最大公约数的操作,并将结果输出到终端上。

以下是使用 C 语言实现辗转相除法求解最大公约数的示例代码:

#include <stdio.h>

// 定义函数 gcd,用于计算两个整数的最大公约数
int gcd(int a, int b) {
    int temp;
    while (b != 0) {
        temp = a % b;
        a = b;
        b = temp;
    }
    return a;
}

int main() {
    int n;
    printf("请输入需要计算最大公约数的整数个数:");
    scanf("%d", &n);
    int nums[n];
    for (int i = 0; i < n; i++) {
        printf("请输入第%d个整数:", i + 1);
        scanf("%d", &nums[i]);
    }
    int result = nums[0];
    for (int i = 1; i < n; i++) {
        result = gcd(result, nums[i]);
    }
    printf("它们的最大公约数为:%d\n", result);
    return 0;
}

在这个示例代码中,我们定义了一个函数 gcd 来计算两个整数的最大公约数,并在主函数中读取用户输入的整数个数和各个整数的值。然后我们通过一个循环来遍历这些整数,并对它们依次进行求最大公约数的操作,将结果保存到变量 result 中。

在这个循环中,我们首先将 result 初始化为第一个整数的值,然后从第二个整数开始,每次调用 gcd 函数来计算当前整数和 result 的最大公约数,并将结果赋给 result,以此来逐步缩小计算范围,最终得到所有整数的最大公约数。

最后,我们将 result 输出到终端上作为计算结果。