本文主要是介绍【OJ】1075: 多个数的最小公倍数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这个题目不难,时间复杂度可以在O(n)内搞定,具体分析见代码:
#include<stdio.h>int gcd(int a, int b) {// 求a、b的最大公约数while (b != 0) {int r = a%b;a = b;b = r;}return a;
}int main()
{int n;while (scanf("%d", &n) != EOF) {if (n == 0) break;int *a = new int[n];for (int i = 0; i < n; i++) {scanf("%d", &a[i]);}int ret = -1;for (int i = 0; i < n - 1; i++) {// 循环n-1次就好int t = a[i] * a[i + 1] / gcd(a[i], a[i + 1]);if (t > ret) { ret = t;}}delete[]a;printf("%d\n", ret);}return 0;
}
这篇关于【OJ】1075: 多个数的最小公倍数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!