c++用全局变量写最大公约数最小公倍数程序
时间: 2024-11-29 14:37:00 浏览: 25
在 C++ 中,可以使用全局变量来存储计算过程中需要的数据,比如最大公约数 (GCD) 和最小公倍数 (LCM) 的中间结果。下面是一个简单的例子,展示了如何编写一个全局变量的程序,用于求两个整数的最大公约数和最小公倍数:
```cpp
#include <iostream>
using namespace std;
// 全局变量声明
int gcd, lcm; // 定义全局变量 gcd 和 lcm
// 辗转相除法计算 GCD(欧几里得算法)
int euclidean_gcd(int a, int b) {
if (b == 0)
return a;
else
return euclidean_gcd(b, a % b);
}
// 计算 LCM 使用 GCD
int calculate_lcm(int num1, int num2) {
return (num1 * num2) / euclidean_gcd(num1, num2);
}
// 主函数
int main() {
int num1, num2;
cout << "请输入两个整数:";
cin >> num1 >> num2;
// 使用全局变量存储结果
gcd = euclidean_gcd(num1, num2);
lcm = calculate_lcm(num1, num2);
cout << "两数的最大公约数(GCD)是:" << gcd << endl;
cout << "两数的最小公倍数(LCM)是:" << lcm << endl;
return 0;
}
```
在这个程序中,`euclidean_gcd` 函数实现了辗转相除法(也称欧几里得算法),而 `calculate_lcm` 则利用 GCD 计算 LCM。主函数中用户输入两个整数,然后计算并输出它们的最大公约数和最小公倍数。
阅读全文