算法C++最大公约数
原理
代码实现
#include <stdio.h>// 递归版本
int gcd_recursive(int a, int b) {if (b == 0) return a; // 终止条件:余数为0时,除数即为GCDreturn gcd_recursive(b, a % b); // 递归调用,更新为(b, a%b)
}// 迭代版本
int gcd_iterative(int a, int b) {while (b != 0) {int temp = b; // 暂存除数b = a % b; // 余数作为新的除数a = temp; // 原除数作为新的被除数}return a; // 循环结束时,a为GCD
}int main() {int num1 = 48, num2 = 18;printf("递归法 GCD: %d\n", gcd_recursive(num1, num2)); // 输出:6printf("迭代法 GCD: %d\n", gcd_iterative(num1, num2)); // 输出:6return 0;
}