问题A Least Common Multiple
题目大意
多组测试数据,每组数据占一行。
每行第一个数据m代表这组有m的数求最小公倍数,后接m个数值。
思路
循环输入m个数,用一个变量记录当前的最小公倍数,之后每输入一个就与当时的最小公倍数变量一起求最小公倍数。
这题的测试数据应该是默认数据按照递增输入的,同时也就顺便保证了当前的最小公倍数比即将输入的数值小。
代码
#include <iostream>
#include <stdio.h>
#include <algorithm>
using namespace std;
int gcd(int a,int b){
if(b==0)
return a;
else
return gcd(b, a%b);
}
int main(int argc, const char * argv[]) {
int k,m,n;
scanf("%d",&k);
while(k--){
int temp=1;
scanf("%d",&m);
for(int i=0;i<m;i++){
scanf("%d",&n);
temp=n/gcd(n,temp)*temp;
}
printf("%d\n",temp);
}
return 0;
}
本文介绍了一种求解多个整数最小公倍数的算法实现,通过循环输入整数并利用辗转相除法计算最大公约数,进而求得最小公倍数。适用于处理多组测试数据,确保计算效率。
1万+

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



