题目的意思就是找n个数的最小公倍数,可以通过短除法来做,也可以直接从最大的数一直加一开始找
/*
*
*Problem Description
*求n个数的最小公倍数。
*
*
*Input
*输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数。
*
*
*Output
*为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行。你可以假设最后的输出是一个32位的整数。
*
*
*Sample Input
*2 4 6
*3 2 5 7
*
*
*Sample Output
*12
*70
*
*
*Author
*lcy
*
*
*Source
*C语言程序设计练习(五)
*
*
*Recommend
*lcy
*
*/
#include<iostream>
using namespace std;
int main() {
int n, max, *a, result, cnt;
while (cin >> n) {
max = 0;
result = 1;
a = new int[n];
for (int i = 0; i < n; i++) {
cin >> a[i];
if (max < a[i]) max = a[i];
}
max--;
do {
max++;
cnt = 0;
for (int i = 0; i < n; i++) {
if (max%a[i] == 0) {
cnt++;
}
}
} while (cnt != n);
cout << max << endl;
}
system("pause");
return 0;
}
本文介绍了一种求解n个数最小公倍数的算法,通过从最大数开始逐个检查是否为所有数的倍数,直到找到第一个符合条件的数为止。此方法适用于C语言程序设计练习,能够处理多个测试实例并输出每个实例的最小公倍数。
512

被折叠的 条评论
为什么被折叠?



