跳到主要内容

C 编程:使用递归寻找最大公约数

要理解这个例子,你需要了解以下 C 语言编程 主题的知识:

这个程序要求用户输入两个正整数,并使用递归计算它们的最大公约数(G.C.D)。

访问此页面了解如何使用循环 计算最大公约数

使用递归计算两个数的最大公约数

#include <stdio.h>
int hcf(int n1, int n2);
int main() {
int n1, n2;
printf("输入两个正整数:");
scanf("%d %d", &n1, &n2);
printf("%d 和 %d 的最大公约数是 %d。", n1, n2, hcf(n1, n2));
return 0;
}

int hcf(int n1, int n2) {
if (n2 != 0)
return hcf(n2, n1 % n2);
else
return n1;
}

输出

输入两个正整数:366
60
36660 的最大公约数是 6

在这个程序中,只要 n2 的值不等于 0,就会进行递归调用。