杭電ACM 1042 N (還需再看)

2021-06-22 23:22:32 字數 943 閱讀 2921

problem description

given an integer n(0 ≤ n ≤ 10000), your task is to calculate n!

input

one n in one line, process to the end of file.

output

for each n, output n! in one line.

sample input

123

sample output

126

ac**:

//計算 n!的斯特林公式:n!=(sqrt(2*pi*n))(n/e)^n,如果用這個公式計算 n!因為數太大還是不可以用來計算 所以還是要用大數乘法計算

//高精度問題 :大數乘法的應用

//核心思想就是把計算結果每一位上的數字儲存到乙個陣列成員中,例如:

//把124儲存到陣列中,儲存結果應該是result=4,result=2,result=1

//把整個陣列看成乙個數字,這個數字和乙個數相乘的時候,需要每一位都和這個乘數進行相乘運算,還需把前一位的進製加上

//int 結果=result【x】*乘數+進製;

//每一位的計算結果有了,把這個結果的個位數拿來放到這個陣列元素上:result【x】=結果%10;

//接下來的工作就是計算出進製:進製=結果/10;

#include

#include

#include

int main()

}while(k)                   //計算進製

}for(i=count-1;i>=0;i--)

printf("%d",a[i]);

printf("\n");

}return 0;}

杭電ACM 1042 大數階乘 N

原題位址 首先定義乙個足夠長的陣列。拿10000的階乘為例,最後的結果長度是35660位,所以我們定義乙個40000個成員的陣列就可以了。int result 40000 其核心思想就是把計算結果每一位上的數字儲存到乙個陣列成員中,例如 把124儲存至陣列中,儲存結果應該是 result 0 4 r...

杭電1042 N!(大數乘法的應用!)

problem description given an integer n 0 n 10000 your task is to calculate n input one n in one line,process to the end of file.output for each n,outp...

杭電ACM題目分類

基礎題 1000 1001 1004 1005 1008 1012 1013 1014 1017 1019 1021 1028 1029 1032 1037 1040 1048 1056 1058 1061 1070 1076 1089 1090 1091 1092 1093 1094 1095 1...