这几天做到了有关超时问题的两道题:hdu2139和hdu2132.
2139题目:
Calculate the formula Problem Description:You just need to calculate the sum of the formula: 1^2+3^2+5^2+……+ n ^2.
Input:In each case, there is an odd positive integer n.
Output:Print the sum. Make sure the sum will not exceed 2^31-1
Sample Input 3 Sample Output 10正确代码:
#include<stdio.h> #include<math.h> int main(){ int n; long long int f[100001]; int i; f[0]=0; for(i=1;i<=100000;i=i+2){ f[i]=f[i-2]+pow(i,2); } while(scanf("%d",&n)!=EOF){ printf("%lld\n",f[n]); } return 0; }超时代码:
#include<stdio.h> #include<math.h> int main(){ int n; while(scanf("%d",&n)!=EOF){ long long int sum=0; int i; for(i=1;i<=n;i+=2){ sum=sum+pow(i,2); } printf("%lld\n",sum); } return 0; }然后发现居然和hdu2132惊人的相似,也是把while(scanf()!=EOF)放在了最后面,然后数组那里也很像