Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:怎么老是Time Limit ExceededIn Reply To:怎么老是Time Limit Exceeded Posted by:ustc911 at 2011-08-22 15:33:33 重复计算太多了,你需要用一个数组把已经计算过的结果保存下来,输入一个数c时,如果数组的最后一个数sum[maxN]大于c,就要从maxN开始继续计算;否则就遍历这个数组,找到第1个大于c的下标。 > #include<stdio.h> > int main() > { > int i=0,n=1,b[10]; > float s=0.0,m=0.01,a=0.01,c[10]; > while(a!=0) > { > scanf("%f",&a); > if(a>5.20) printf("input error\n"); > else {c[i]=a;i++;} > } > while(m>0) > { > s=s+1/(n+1); > for(i=0;c[i]>0;i++) > { > if(c[i]<s) b[i]=n; > m=c[i]; > } > n++; > } > b[i+1]=0; > for(i=0;b[i]>0;i++) > printf("%5dcard(s)",b[i]); > return 0; > } > Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator