20分求助
  • 板块P1255 数楼梯
  • 楼主one_ZHI
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/7/21 11:07
  • 上次更新2023/11/3 08:29:39
查看原帖
20分求助
773085
one_ZHI楼主2023/7/21 11:07
#include<bits/stdc++.h>
using namespace std;
long long int n,t[11111],a[10011][11111],lena,lenb;
int main(){
	cin>>n;
	a[1][1]=1;
	a[1][2]=1;
	a[1][3]=1;
	
	for(int i=1;i<=n;i++){
		lena=1;
		lenb=1;
		if(i<=3){
			t[1]++;
		}
		else {
			
			for(int j=1;j<=max(lena,lenb);j++){
				a[j][i]=a[j][i-1]+a[j][i-2];
				if(a[j][i]>=10){
					a[j+1][i]=a[j][i]/10;
					a[j][i]%=10;
				}
				t[j]+=a[j][i];
				if(t[j]>=10){
					t[j+1]+=t[j]/10;
					t[j]%=10;
				}
				if(a[j+1][i]) lena++;
				if(t[j+ 1]) lenb++;
			}
		}
	} 
	lenb=50;
	while(t[lenb]==0) lenb--;
	for(int i=lenb;i>=1;i--) cout<<t[i];
	return 0;
}
2023/7/21 11:07
加载中...