(算法练习)——Least Common Multiple(最小公倍数)

要求:
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;//重置下 
	}
}
发布了117 篇原创文章 · 获赞 3 · 访问量 2609

猜你喜欢

转载自blog.csdn.net/weixin_42377217/article/details/104089790