要求:
http://codeup.cn/problem.php?cid=100000589&pid=0
说明:
这一题依然是通过了本地样例,但是答案错误。。。不造为啥,有时间再看吧。。
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <algorithm>
using namespace std;
int gcd(int a,int b){
if(b == 0) return a;
else{
gcd(b,a%b);
}
}
int num[1000];//存每一行数的个数
int record[1000];//存每一行的数
int recordnum[1000];//存输出的最小公倍数
int main(){
int n;
int linshi;
while(scanf("%d",&n) != EOF){
for(int i = 0;i <n;i++){
scanf("%d",&num[i]);
for(int j = 0;j <num[i];j++){
scanf("%d",&record[j]);
if(j >=1){//这里要是>=1,否则2个的不能执行
linshi = record[j-1]/gcd(record[j-1],record[j])*record[j];
record[j] = linshi;
}
}
if(linshi != 0){//考虑只有一个数字的情况
recordnum[i] = linshi;
}
else{
recordnum[i] = record[0];
}
}
for(int p = 0;p<n;p++){
printf("%d\n",recordnum[p]);
}
memset(num,0,sizeof(num));
memset(record,0,sizeof(record));
memset(recordnum,0,sizeof(recordnum));
linshi = 0;//重置下
}
}