酷代码 AI
菜单
服务商
DeepSeek字节豆包
更多选项

C++实现多设备最小公倍数(LCM)计算

好的,我们一起来完成这个题目。题目要求计算n台设备运行周期的最小公倍数(LCM)。 ## 🧠 解题思路 1. 使用辗转相除法(欧几里得算法)先求出两个数的最大公约数(GCD)。 2. 两数的最小公倍数 = 两数乘积 / 它们的最大公约数。 3. 依次将当前已经计算出的LCM与下一个数进行LCM计算,直至处理完所有数。 ## 💻 完整代码实现 ```cpp #include <iostream> using namespace std; int a[1000]; // 求最大公约数(辗转相除法) int gcd(int a, int b) { while (b != 0) { int temp = b; b = a % b; a = temp; } return a; } // 求最小公倍数 int lcm(int a, int b) { return a / gcd(a, b) * b; // 先除后乘,避免溢出 } int main() { int n; cin >> n; for (int i = 0; i < n; i++) { cin >> a[i]; } // 依次计算所有数的最小公倍数 int result = a[0]; for (int i = 1; i < n; i++) { result = lcm(result, a[i]); } cout << result << endl; return 0; } ``` ## 🔍 代码说明 - `gcd` 函数:使用辗转相除法求最大公约数。 - `lcm` 函数:`a / gcd(a, b) * b`,先除后乘防止中间结果溢出。 - `main` 函数中:先读入n和所有设备周期,然后从第一个数开始,逐个与后面的数求LCM,最终得到所有设备的最小同步点。 ######[AI问答 | 424点数解答 | 2026-08-22 21:58:09]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]