杭电2028(gcd)
突然想写博客记录一下自己的代码
看一下杭电的2028.这个水题,咳咳,不多解释看代码, C。
#include <stdio.h>
#include <stdlib.h>
int gcd(int m, int n)
{
int r = m % n;
if(r == 0) return n;
else return gcd(n,r);
}// 辗转相除求最大公约数。
int main()
{
int i,n,a[1000];
double sum,temp;
while(scanf("%d",&n) != EOF)
{
for(i =0; i< n; i++) scanf("%d",&a[i]);
for(i = 0,temp = a[0]; i< n; i++)
{
temp = temp * a[i] / gcd(temp, a[i]);
}
printf("%.0lf\n",temp);
}
return 0;
}
思路大概就是这样的:两个两个求最大公倍数(两个数乘积除以最大公约数)。遍历一下数组就可以了,额,还有我还用了一下double没用int,怕超。。。