在这个题目里面,利用同余定理可以减少很多计算量。不过从书上面的解答中知道了要利用时间函数进行代码调试,现在贴一下代码吧!
#include#include /* 利用同余定理求阶层之和 */int main(){ const int MOD = 1000000; int n; int i,j; long long sum,f; while(~scanf("%d",&n)){ //对于结果观察后的技巧; if(n>25) n=25; sum = 0; for(i = 1;i <= n;i++) { f=1; for(j = 1;j <= i;j++) f = (f * j) % MOD; sum = (sum + f) % MOD; } printf("%lld ",sum); printf("%.2lf\n",(double)clock() / CLOCKS_PER_SEC);} return 0;}但是有一个问题就是时间好像跟书上面给出来的不一样。