80分求助
查看原帖
80分求助
774204
A_chicken_boy楼主2022/10/15 21:45
using namespace std;
long long n;
long long a[5000001],b[500001],c[500001];
int main(){
	scanf("%d",&n);
	a[0]=1;
    b[0]=1;
	long long la=1;
	long long lb=1;
	for(long long i=0;i<n-1;i++){
	   long long mx=max(la,lb);
	   for(long long k=0;k<lb;k++){
	   	c[k]=b[k];
	   }
	   long long lc=lb;
	   for(long long j=0;j<mx;j++){
	   	b[j]=a[j]+b[j];
	   	if(b[j]>=10){
	   		b[j]-=10;
	   		b[j+1]+=1;
	   		lb+=1;
		   }
	   }
	   for(long long g=0;g<=lc;g++){
	   	a[g]=c[g];
	   }
	} 
	long long f=1;
		for(long long i=lb-1;i>=0;i--){
		if(b[i]==0&&f){
			lb--;
		}else{
			f=0;
		}
	}
	for(long long i=lb-1;i>=0;i--){
		cout<<b[i];
	}
	return 0;
}
2022/10/15 21:45
加载中...