.
查看原帖
.
691203
Tan_Transparent楼主2022/7/7 22:26
#include<bits/stdc++.h>
using namespace std;
#define maxn 1000
struct BigInt{
	int len,a[maxn];
	BigInt(int x=0){
		memset(a,0,sizeof(a));
		for(len=1;x;a[len]=x%10,x/=10,len++);
		len--;
	}
	int &operator[](int i){return a[i];}
	void flatten(int L){
		len=L;
		for(int i=1;i<=len;a[i+1]+=a[i]/10,a[i]%=10,i++);
		for(;!a[len];len--);
	}
	void print(){for(int i=max(len,1);i>=1;printf("%d",a[i]),i++);}
};
BigInt operator+(BigInt a,BigInt b){
	BigInt c;
	int len=max(a.len,b.len);
	for(int i=1;i<=len;c[i]=a[i]+b[i],i++)
	c.flatten(len+1);
	return c;
}
int main(){
	BigInt s1(1),s2(2),s3(0);
    int n;
    cin>>n;
    for(int i=1;i<=n-2;i++){
        s3=s1+s2;
        s1=s2;
        s2=s3;
    }
    s3.print();
}

全RE

2022/7/7 22:26
加载中...