GDUFE ACM-1003

Lowest Common Multiple Plus

Time Limit: 2000/1000ms (Java/Others)

Problem Description:

求n个数的最小公倍数。

Input:

输入包含多个测试实例,每个测试实例的开始是一个正整数n(2<=n<=100),然后是n个正整数(数字均大于0)。

Output:

为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行。你可以假设最后的输出是一个64位的整数。

Sample Input:

2 3 4
3 23 45 2

Sample Output:

12
2070超时代码:
 1 #include<stdio.h>
 2 int main()
 3 {
 4     long long int n,a,i,k,t,min,j,s[200];
 5     while(scanf("%lld",&n)!=EOF)
 6     {
 7         for(i=0;i<n;i++)
 8         {
 9         scanf("%lld",&s[i]);
10         long long int min=s[0];
11         }
12         a=1,k=0;
13         for(i=0;i<n;i++)
14         {
15             a=a*s[i];
16             if(min>s[i])
17             min=s[i];
18         }
19         for(i=min;i>=1;--i)
20         {
21         for(j=0;j<n;++j)
22             if(s[j]%i==0)
23                 ++k;
24         if(k==n)
25         {
26             t=i;
27             break;
28         }
29         else
30             k=0;
31         }
32         printf("%lld\n",a/t);
33     }
34     return 0;
35 }

超时好烦。。。。。。。最后换了一种思路。。。。。。。/*<>*/

AC代码:

 1 #include<stdio.h>
 2 long long int s(long long int a,long long int b)
 3 {
 4     long long int f,t;
 5     long long int p=a,k=b;
 6     if(a<b)
 7     {
 8         t=a;
 9         a=b;
10         b=t;
11     }
12     while(b!=0)
13     {
14         f=a%b;
15         a=b;
16         b=f;
17     }
18     return p/a*k;
19 }
20 int main()
21 {
22     long long int n,m,a[100],i;
23     while(scanf("%lld",&n)!=EOF)
24     {
25         if(n==0)
26         continue;
27         m=1;
28         for(i=0;i<n;i++)
29         {
30             scanf("%lld",&a[i]);
31             m=s(a[i],m);
32         }
33         printf("%lld\n",m);
34     }
35     return 0;
36 }

应该还有更好的做法。。。。。。望大佬指点。。。。。。

时间: 2024-11-04 13:03:58

GDUFE ACM-1003的相关文章

杭电acm 1003

http://blog.csdn.net/akof1314/article/details/4757021 他人写的 参考了一下  这就是动态规划?? 题解: 动态规划的题目,之前就做不出来,月赛又考到,不得不解决.解题思路来自别人的,这里自己也记录一下. 以下是变量说明: t 测试数据组数 n 每组数据的长度 temp 当前取的数据 pos1 最后MAX SUM的起始位置 pos2 最后MAX SUM的结束位置 max 当前得到的MAX SUM now 在读入数据时,能够达到的最大和 x 记录

HDU acm 1003 Max Sum || 动态规划求最大子序列和详解

Max Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 164592    Accepted Submission(s): 38540 Problem Description Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max su

杭电(hdu)ACM 1003 Max Sum

Max Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 178139    Accepted Submission(s): 41558 Problem Description Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max s

杭电 HDU ACM 1003 Max Sum

 Max Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 164592    Accepted Submission(s): 38540 Problem Description Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the ma

HDU ACM 1003 Max Sum

注意只有一个负数时,负数也算最大值. #include<iostream> using namespace std; int main() { int a[100001]; int T,T2=0,n,i; int sum,maxsum,start,maxstart,maxend; cin>>T; while(T--) { cin>>n; for(i=0;i<n;i++) cin>>a[i]; maxstart=maxend=sum=0; maxsum=

[ACM] hdu 1003 Max Sum(最大子段和模型)

Max Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 135262    Accepted Submission(s): 31311 Problem Description Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max s

华东交通大学2017年ACM“双基”程序设计竞赛 1003

Problem Description 有两个球在长度为L的直线跑道上运动,两端为墙.0时刻小球a以1m/s的速度从起点向终点运动,t时刻小球b以相同的速度从终点向起点运动.问T时刻两球的距离.这里小球与小球.小球与墙的碰撞均为弹性碰撞,所有过程没有能量损失. Input 先输入一个q,代表q组数据,然后每组3个整数 L,t,T.1<=L<=1000;0<=t<=1000;t<=T<=1000; Output 一个整数,代表答案. Sample Input 2 10 4

ACM学习历程—HDU5587 Array(数学 &amp;&amp; 二分 &amp;&amp; 记忆化 || 数位DP)(BestCoder Round #64 (div.2) 1003)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5587 题目大意就是初始有一个1,然后每次操作都是先在序列后面添加一个0,然后把原序列添加到0后面,然后从0到末尾,每一个都加上1. 例如:a0, a1, a2 => a0, a1, a2, 1, a0+1, a1+1, a2+1 题解中是这么说的:“ 其实Ai为i二进制中1的个数.每次变化A{k+2^i}=A{k}+1,(k<2^?i??)不产生进位,二进制1的个数加1.然后数位dp统计前m个数二

poj 5024&amp;&amp;&amp;2014 ACM/ICPC Asia Regional Guangzhou Online 1003(预处理)

http://acm.hdu.edu.cn/showproblem.php?pid=5024 分析:预处理每个点在八个方向的射线长度,再枚举八种L形状的路,取最大值. 注意题意是求一条最长路,要么一条直线,要么只有一个90角,即L型.其实直线就是L形的一个方向长度为0. 代码: #include<iostream> #include<map> #include<cstdio> #include<string> #include<cstring>

2016 ACM/ICPC Asia Regional Shenyang Online 1003/HDU 5894 数学/组合数/逆元

hannnnah_j’s Biological Test Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 802    Accepted Submission(s): 269 Problem Description hannnnah_j is a teacher in WL High school who teaches biolog