1 条题解

  • 2
    @ 2026-1-5 13:05:39

    (~ ̄▽ ̄)~

    #include<bits/stdc++.h>
    using namespace std;
    string he(string n,string m)
    {
    	int a[3000]={0},b[3000]={0},c[3000]={0};
    	string r;
    	for(int i=0;i<n.size();i++)
    	{
    		a[i]=n[n.size()-1-i]-'0';
    	}
    	for(int i=0;i<m.size();i++)
    	{
    		b[i]=m[m.size()-1-i]-'0';
    	}
    	int len=n.size();
    	if(m.size()>n.size()) len=m.size();
    	for(int i=0;i<len;i++)
    	{
    		c[i]=c[i]+a[i]+b[i];
    		if(c[i]>=10)
    		{
    			c[i+1]=c[i+1]+c[i]/10;
    			c[i]=c[i]%10;
    		}
    	}
    	if(c[len]!=0) len++;
    	for(int i=len-1;i>=0;i--)
    	{
    		r=r+(char)(c[i]+'0');
    	}
    	return r;
    }
    string cheng(string h)
    {
    	int a[3000]={0};
    	string r;
    	for(int i=0;i<h.size();i++)
    	{
    		a[i]=h[h.size()-1-i]-'0';
    	}
    	for(int i=0;i<h.size();i++)
    	{
    		a[i]=a[i]*2;
    	}
    	for(int i=0;i<h.size();i++)
    	{
    		if(a[i]>=10)
    		{
    			a[i+1]=a[i+1]+a[i]/10;
    			a[i]=a[i]%10;
    		}
    	}
    	int len=h.size();
    	if(a[len]!=0) len++;
    	for(int i=len-1;i>=0;i--)
    	{
    		r=r+to_string(a[i]); 
    	}
    	return r;
    }
    int main(){
    	int n;
    	cin>>n;
    	string x,y,z;
    	x="1";
    	y="2";
    	if(n==1) cout<<x;
    	else if(n==2) cout<<y;
    	else
    	{
    		for(int i=3;i<=n;i++)
    		{
    			z=he(cheng(y),x); 
    			x=y;
    			y=z;
    		}
    		cout<<z; 
    	}
    	return 0;
    }
    
    • 1

    信息

    ID
    375
    时间
    1000ms
    内存
    16MiB
    难度
    6
    标签
    (无)
    递交数
    141
    已通过
    38
    上传者