50分求助
查看原帖
50分求助
1380560
wxhwxh66楼主2024/7/29 10:19
#include <bits/stdc++.h>
using namespace std;
const int kMAXN = 10000+10;
int a[kMAXN]={0},s[kMAXN];
int main(){
	int n;
    scanf("%d",&n);
    a[0]=1,a[1]=1;
    s[0]=1,s[1]=1;
    for(int i=2;i<=n;i++){
        int ca=0;
        for(int j=1;j<=a[0]+1;j++){
          	int po=a[j]*i+ca;
        	a[j]=po%10;
            ca=po/10;
        }
        while(a[a[0]+1]) a[0]++;
        for(int m=1;m<=a[0];m++) cout<<a[m]<<" ";
        cout<<endl;
        int len=a[0]>s[0]?a[0]:s[0];
        for(int j=1;j<=len;j++){
            cout<<s[j]<<"+"<<a[j];
        	s[j]+=a[j];
        	cout<<"="<<s[j]<<endl;
            if(s[j]>=10)s[j+1]++,s[j]-=10,cout<<"carry"<<s[j+1]<<" "<<s[j]<<endl;
            
        }
        if(s[s[0]+1]) s[0]++;
    }
    for(int i=s[0];i>=1;i--) printf("%d",s[i]);
	return 0;
}
2024/7/29 10:19
加载中...