話說這題還真的寫不出,沒辦法只能看學習了 這裡的進位可以是5位一進 zzy的是4位一進,原理是一樣的,選的這份還有一個原因是很好的利用了c++的輸出裡面的優勢 iomanip有的時候貌似還是很好用的,zzy: http://blog.163.com/lovejingru@yeah/blog/static/86752478201161424210787/
#include <iostream>
#include <iomanip>
using namespace std;
int main(){
int a[10000], n, i, j, c;//倒序存儲
while(cin>>n){
a[0]=a[1]=1;//a[0]數組大小
for(i=2; i<=n; i++){
c=0;//進位
for(j=1; j<=a[0]; j++){
a[j]=a[j]*i + c;
if(a[j]>=100000){
c=a[j]/100000;
a[j]=a[j]%100000;
}
else{
c=0;
}
}
if(c!=0){
a[j]=c;
a[0]++;
}
}
cout<<a[a[0]];
cout.fill('0');//補0
for(i=a[0]-1; i>=1; i--){
cout<<setw(5)<<a[i];//補位setw
}
cout<<endl;
}
return 0;
}