2 4 6 3 2 5 7
12 70
刚学c的时候是一个数一个数判断的,也算勉强ac了。后来做题怕超时,先给数排序,用最大的数挨个向后计算,不知道时间上会不会快一点。
第一次代码:
#include <stdio.h> #include <math.h> int main() { int n; int x; //判断是否为多少个数的倍数 while (scanf("%d",&n)!=EOF) { x=0; int cot=1; int a[1125]; for (int k=1;k<=n;k++) { scanf ("%d",&a[k]); } while (cot++) { for (int k=1;k<=n;k++) { if (cot%a[k]!=0) { break; } else { x++; } } if (x==n) { break; } else { x=0; } } printf ("%d\n",cot); } return 0; }
#include <stdio.h> #include <algorithm> using namespace std; bool cmp(int a,int b) { return a>b; } int main() { int u; int a[10000]; int cot; int t; while (~scanf ("%d",&u)) { for (int i=1;i<=u;i++) { scanf ("%d",&a[i]); } sort (a+1,a+1+u,cmp); t=cot=a[1]; for (int i=2;i<=u;i++) { for (int j=1;cot%a[i]!=0;j++) { cot+=t; } t=cot; } printf ("%d\n",cot); } return 0; }