高中生程式解題系統:c119: 10220 - I Love Big Numbers
題目連結 http://zerojudge.tw/ShowProblem?problemid=c119。
用陣列來處理,此部分可參考 超長整數運算(大數運算)一文。
程式碼:
#include<stdio.h>
int val[1001], p[10000], psize = 0;
int main(){
int i, j, n;
p[0] = 1;
val[0] = 1;
for(i = 1; i <= 1000; i++){
for(j = 0; j <= psize; j++){
p[j] *= i;
}
for(j = 0; j <= psize; j++){
p[j+1] += p[j]/10;
p[j] %= 10;
val[i] += p[j];
}
while(p[psize+1]){
psize++;
p[psize+1] += p[psize]/10;
p[psize] %= 10;
val[i] += p[psize];
}
}
while(scanf("%d", &n)==1){
printf("%d\n", val[n]);
}
return 0;
}
若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。
留言