题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2114
Calculate S(n)
Time Limit: 10000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 11894 Accepted Submission(s): 4273
Problem Description
Calculate S(n).
S(n)=1 3+2 3 +3 3 +......+n 3 .
S(n)=1 3+2 3 +3 3 +......+n 3 .
Input
Each line will contain one integer N(1 < n < 1000000000). Process to end of file.
Output
For each case, output the last four dights of S(N) in one line.
Sample Input
1 2
Sample Output
0001 0009
Author
天邪
Source
这个题目就一个立方和公式即可解决,充分说明了数学的重要性。S(n)=(n*(n+1)/2)^2;
AC代码如下:(如有错误和建议,请大家不吝指出)
#include<stdio.h>
int main(){
__int64 n;
while(scanf("%I64d",&n)!=EOF){
__int64 count=((n*(n+1)/2)%10000)*((n*(n+1)/2)%10000)%10000;
if(count<10)
printf("000%d\n",count);
else if(count<100)
printf("00%d\n",count);
else if(count<1000)
printf("0%d\n",count);
else
printf("%d\n",count);
}
return 0;
}