高精度加法应用 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);
posted @ 2020-10-05 21:10  一个经常掉线的人  阅读(108)  评论(0)    收藏  举报