大佬帮忙看看哪里出了问题
  • 板块P1255 数楼梯
  • 楼主Ravener
  • 当前回复5
  • 已保存回复5
  • 发布时间2024/2/24 19:21
  • 上次更新2024/2/24 21:43:56
查看原帖
大佬帮忙看看哪里出了问题
956382
Ravener楼主2024/2/24 19:21

不能正常输出结果

#include<bits/stdc++.h>
using namespace std;
void input(string a,int lena,int x[])
{
	for(int i=0;i<lena;i++)
	{
		x[i]=a[lena-i]-'0';
	}
}
void output(string a,int lena,int x[])
{
	for(int i=0;i<lena;i++)
	{
		a[i]=x[lena-i]+'0';
	}
}
void jia(string a,string b,string c,int lena,int lenb,int lenc)
{
	int n=0;
	int x[1005],y[1005],z[1005];
	memset(x,0,sizeof(x));
	memset(y,0,sizeof(y));
	memset(z,0,sizeof(z));
	input(a,lena,x);
	input(b,lenb,y);
	lenc=max(lena,lenb)+1;
	for(int i=0;i<=lenc;i++)
	{
		z[i]=x[i]+y[i];
		n=z[i]/10;
		z[i]%=10;
	}
	while(z[lenc]==0) --lenc;
	output(c,lenc,z);
}
int main()
{
	int n,lena=1,lenb=1,lenc=1;
	string a="1",b="1",c="0";
	cin>>n;
	if(n==0) cout<<"0";
	else if(n==1) cout<<"1";
	else
	{
		for(int i=1;i<n;i++)
		{
			if(i%3==1) jia(a,b,c,lena,lenb,lenc);
			else if(i%3==2) jia(b,c,a,lenb,lenc,lena);
			else jia(c,a,b,lenc,lena,lenb);
		}
		if(n%3==1) cout<<b;
		else if(n%3==2) cout<<c;
		else cout<<a;
	}
}
2024/2/24 19:21
加载中...