杭电acm2114

http://acm.hdu.edu.cn/showproblem.php?pid=2114

先用打表,可是一直错误,后来发现有个什么数学公式,然后才对了

打表

View Code
 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 int main()
 4 {
 5     __int64 n,sum;
 6     int i,a[10001];
 7     a[0]=0;
 8     a[1]=1;
 9     for(i=2;i<=9999;i++)
10       a[i]=((i%10000)*(i%10000)*(i%10000)+a[i-1])%10000;
11     while(scanf("%I64d",&n)!=EOF)
12     {
13         printf("%04d\n",a[n%10000]);
14     }
15     return 0;
16 }

数学公式

View Code
 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 int main()
 4 {
 5     __int64 n,sum;
 6     while(scanf("%I64d",&n)!=EOF)
 7     {
 8         n%=10000;
 9         printf("%04d\n",(n*(n+1)/2)*(n*(n+1)/2)%10000);
10     }
11     return 0;
12 }

 

 

posted @ 2013-04-17 12:48  执着追求的IT小小鸟  阅读(134)  评论(0编辑  收藏  举报