高精度加法应用 P1255数楼梯
洛谷P1255
利用二维数组的第二维来存放结果的每一位数字
#include <iostream>
#include<algorithm>
#include<cstdio>
#include<vector>
#include<queue>
#include<stack>
#include<cstring>
using namespace std;
int a[5005][5005];
int len=1,n;
void fun(int k){
for(int i=1;i<=len;i++){
a[k][i]=a[k-1][i]+a[k-2][i];
}
for(int i=1;i<=len;i++){
if(a[k][i]>=10){
a[k][i+1]+=a[k][i]/10;
a[k][i]%=10;
if(a[k][len+1]) len++;
}
}
}
int main(){
cin>>n;
a[1][1]=1,a[2][1]=2;
for(int i=3;i<=n;i++){
fun(i);
}
for(int i=len;i>=1;i--){
cout<<a[n][i];
}
return 0;
}
// freopen("testdata.in", "r", stdin);

浙公网安备 33010602011771号