本地无法输入并返回3221225477,洛谷直接AC,WHY?
查看原帖
本地无法输入并返回3221225477,洛谷直接AC,WHY?
48253
iTheresaApocalypse楼主2023/2/14 10:52
#include<bits/stdc++.h>
using namespace std;
#define maxn 2000
int n;
struct Bigint{
	
	int len,a[maxn];
    
    Bigint(int x=0)
    {
    	memset(a,0,sizeof(a));
    	for(len=1;x;len++)
    	{
    		a[len]=x%10;
    		x/=10;
    	}
    	len--; 
    }
    
    int &operator[](int i)
    {
    	return a[i];
    }
    
    void flatten(int l)
	{
		len = l;
		for(int i=1;i<=len;i++)
		    a[i+1]+=a[i]/10,a[i]%=10;
		for(;!a[len];)
		    len--;
	} 
	
	void print()
	{
		for(int i=max(len,1);i>=1;i--)
		    printf("%d",a[i]);
	}
};

Bigint operator+(Bigint a,Bigint b)
{
	Bigint c;
	int len=max(a.len,b.len);
	for(int i=1;i<=len;i++)
	    c[i]+=a[i]+b[i];
	c.flatten(len+1);
	return c;
    
}
int main()
{
	
	cin>>n;
	Bigint f[5050];
	f[1] = Bigint(1);
	f[2] = Bigint(2);
	
	for(int i=3;i<=n;i++)
	{
		f[i]=f[i-1]+f[i-2];
	}
	
	f[n].print();
	return 0;
} 

2023/2/14 10:52
加载中...