看板 NTUEE107HW 關於我們 聯絡資訊
改用大數寫 , 現在可以算到 100 位數 ~ #include <iostream> using namespace std; void pro(int); int sum[100],sumLen; int main(void) { int i,n; while(1) { cout << "Please input n to get n! , -1 to exit.....n = "; cin >> n; if(n==-1) break; cout << n << "! = "; memset(sum,0,sizeof(sum)); sum[1] = 1; sumLen = 1; while(n-- , n >= 0) pro(n + 1); for(i=sumLen;i>0;i--) cout << sum[i]; cout << "\n"; } return 0; } void pro(int n) { int i,k=0; for(i=1;i<=sumLen || k!=0;i++) { sum[i] *= n; sum[i] += k; k = sum[i] / 10; sum[i] %= 10; if(i > sumLen) sumLen = i; } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.18.116
phylin:unsigned long long可做到20! 推 140.112.18.122 10/02
timrau:不管了,就用long int,反正其他也沒教 推 140.112.18.71 10/02
whxu:Visual C++ 的 long int 就是 int 推 210.85.67.226 10/02