🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# C++ 程序:查找 GCD > 原文: [https://www.programiz.com/cpp-programming/examples/hcf-gcd](https://www.programiz.com/cpp-programming/examples/hcf-gcd) #### 有关使用循环和决策语句来计算两个整数(正整数和负整数)的 GCD 的不同方法的示例。 要理解此示例,您应该了解以下 [C++ 编程](/cpp-programming "C++ tutorial")主题: * [C++ `if`,`if...else`和嵌套`if...else`](/cpp-programming/if-else) * [C++ `for`循环](/cpp-programming/for-loop) * [C++ `while`和`do...while`循环](/cpp-programming/do-while-loop) * * * 可以完美除以两个整数的最大整数称为这两个数字的 GCD 或 HCF。 * * * ### 示例 1:使用`while`循环查找 GCD ```cpp #include <iostream> using namespace std; int main() { int n1, n2; cout << "Enter two numbers: "; cin >> n1 >> n2; while(n1 != n2) { if(n1 > n2) n1 -= n2; else n2 -= n1; } cout << "HCF = " << n1; return 0; } ``` **输出** ```cpp Enter two numbers: 78 52 HCF = 26 ``` 在上面的程序中,从较大的数字中减去较小的数字,并存储该数字以代替较大的数字。 继续此过程,直到两个数字相等,即 HCF。 * * * ### 示例:2.使用`for`循环查找 HCF/GCD ```cpp #include <iostream> using namespace std; int main() { int n1, n2, hcf; cout << "Enter two numbers: "; cin >> n1 >> n2; // Swapping variables n1 and n2 if n2 is greater than n1. if ( n2 > n1) { int temp = n2; n2 = n1; n1 = temp; } for (int i = 1; i <= n2; ++i) { if (n1 % i == 0 && n2 % i ==0) { hcf = i; } } cout << "HCF = " << hcf; return 0; } ``` 该程序的逻辑很简单。 在该程序中,`n1`和`n2`之间的小整数存储在`n2`中。 然后,循环从`i = 1`迭代到`i <= n2`,并且在每次迭代中,`i`的值增加 1。 如果两个数字都可以被`i`整除,则该数字将存储在变量`hcf`中。 迭代完成后,HCF 将存储在变量`hcf`中。