作者whxu (ㄧㄟㄛ夫~好淫穢)
看板NTUEE107HW
標題Re: n!
時間Thu Oct 2 17:09:41 2003
改用大數寫 , 現在可以算到 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