求dalao帮忙看看
查看原帖
求dalao帮忙看看
1088906
XZWUL楼主2023/11/15 20:03
#include <iostream>
#define N 100
using namespace std;
char a[N],b[N];
char* charplus(char *a,char *b,int n)
{
	int k=0,c;
	for(int i=n-1;i>=0;i--)
	{
		c=(int)(a[i]-'0')+(int)(b[i]-'0');
		a[i]=(char)((c%10+k)+'0');
		k=c/10;
	}
	return a;
}
char* Hanoi(int n)
{
	if(n>1)
		return charplus(charplus(Hanoi(n-1),b,N),a,N);
	else
		return b;
}
int main()
{
	int n,m=0;
	for(int i=0;i<N;i++)
	{
		if(i==N-1)
			a[i]=b[i]='1';
		else
			a[i]=b[i]='0';
	}
	cin>>n;
	Hanoi(n);
	charplus(b,b,N);
	for(int i;i<N;i++)
	{
		if(b[i]!='0'&&m==0)
		{
			cout<<b[i];
			m=1;
		}
		else
		if(b[i]!='0'||m==1)
			cout<<b[i];
	}
}

我代码这样写,答案是对的啊,而且精度也很高,但是为什么不给过呢,总是显示答案太短

2023/11/15 20:03
加载中...