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 }