#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];
}
}
我代码这样写,答案是对的啊,而且精度也很高,但是为什么不给过呢,总是显示答案太短