原文: https://www.programiz.com/c-programming/examples/hcf-recursion

在此示例中,您将学习查找用户使用递归输入的两个正整数的 GCD(最大公约数)。

要理解此示例,您应该了解以下 C 编程主题:


该程序将两个正整数作为用户输入,并使用递归计算 GCD。

访问此页面以了解如何使用循环来计算 GCD


使用递归的两个数的 GCD

  1. #include <stdio.h>
  2. int hcf(int n1, int n2);
  3. int main() {
  4. int n1, n2;
  5. printf("Enter two positive integers: ");
  6. scanf("%d %d", &n1, &n2);
  7. printf("GCD of %d and %d is %d.", n1, n2, hcf(n1, n2));
  8. return 0;
  9. }
  10. int hcf(int n1, int n2) {
  11. if (n2 != 0)
  12. return hcf(n2, n1 % n2);
  13. else
  14. return n1;
  15. }

输出

  1. Enter two positive integers: 366
  2. 60
  3. GCD of 366 and 60 is 6.

在此程序中,进行递归调用,直到n2的值等于 0。