求助(C++)
查看原帖
求助(C++)
987407
luolie0804楼主2024/5/9 20:30
#include<bits/stdc++.h>
#define F(x,y,z) for(int i=x;i<=y;i+=z)
using namespace std;
int n;
int a[205],b[205],c[205];
string aa[20005];
string jf(string s,string t)
{
	reverse(s.begin(),s.end());
	reverse(t.begin(),t.end());
	F(0,s.size()-1,1)
	{
		a[i]=s[i]-'0';
	}
	F(0,t.size()-1,1)
	{
		b[i]=t[i]-'0';
	}
	int l=max(s.size(),t.size());
	F(0,l-1,1)
	{
		c[i]=a[i]+b[i];
	}
	int jw=0;
	F(0,l-1,1)
	{
		c[i]+=jw;
		jw=c[i]/10;
		c[i]%=10;
	}
	if(jw!=0)
	{
		l++;
		c[l-1]=jw;
	}
	if(c[l+1]) l++;
	string x="";
	for(int i=l-1;i>=0;i--)
	{
		x=x+char(c[i]+'0');
	}
	return x;
}
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
	cin>>n;
	aa[1]="1";
	F(2,n,1)
	{
		aa[i]=jf(jf(aa[i-1],aa[i-1]),"1");
	}
	cout<<jf(aa[n],aa[n]);
	return 0;
}

就对了第二个样例,其他都WA了

2024/5/9 20:30
加载中...