简单的大数相加
代码:
#include<iostream> #include<cstdio> #include<cstring> using namespace std; long long s[1010][1005]; int main() { int i,j,n; memset(s,0,sizeof(s)); s[1][0]=1;s[2][0]=2;s[3][0]=4;s[4][0]=7; for(i=5;i<=1000;i++){ for(j=0;j<=1000;j++) s[i][j]=s[i-1][j]+s[i-2][j]+s[i-4][j]; for(j=0;j<=1000;j++){ if(s[i][j]>=10){ s[i][j+1]+=s[i][j]/10; s[i][j]%=10; } } } while(cin>>n){ i=1000; while(i--){ if(s[n][i]!=0) break; } cout<<s[n][i]; i--; for(;i>=0;i--) printf("%d",s[n][i]); cout<<endl; } return 0; }