80分求助!!!

P1255 数楼梯

um您是不是忘记处理了N=1或2的情况(?
by _coastline_ @ 2024-01-28 16:24:32


@[Sunshine_su](/user/758792) ```cpp #include<iostream> #include<cstdio> #include<algorithm> using namespace std; int a[10010],b[10010],c[10010]; void s2BIG(string s,int a[]) { int l=s.size(); a[0]=l; for(int i=1;i<=l;i++) a[i]=s[l-i]-'0'; } void addBIG(int a[],int b[],int c[]) { c[0]=max(a[0],b[0]); int t=0; for(int i=1;i<=c[0];i++) { if(i<=a[0]) t+=a[i]; if(i<=b[0]) t+=b[i]; c[i]=t%10; t/=10; } if(t>0) c[0]++,c[c[0]]=t; } void printBIG(int a[]) { int l=a[0]; for(int i=l;i>=1;i--) cout<<a[i]; } void copy(int a[],int b[]){for(int i=0;i<=b[0];i++) a[i]=b[i];} int main() { int n; cin>>n; s2BIG("1",a); s2BIG("1",b); for(int i=2;i<=n;i++) { addBIG(a,b,c); copy(a,b); copy(b,c); } printBIG(b); return 0; } ```
by __PRO__ @ 2024-01-28 16:29:43


已过,谢谢!
by Sunshine_su @ 2024-01-28 22:01:52


|