汉诺比法塔的程序谁能编

来源:百度知道 编辑:UC知道 时间:2024/06/16 00:49:19

囧...
是汉诺塔吧

#include<stdio.h>
#include<stream.h>
#include<math.h>
#include<conio.h>

int count;

int mid(int a,int b)
{
int i;
for (i=1;i<=3;i++)
if ((i!=a)&&(i!=b)) return(i);
}

int hanoii(int n,int f,int t)
{
if (n==1) {cout<<f<<"->"<<t<<"\n"; count+=1;}
else if (n==0) cout<<"0"<<"\n";
else{
hanoii(n-1,f,mid(f,t));
cout<<f<<"->"<<t<<"\n";
count+=1;
hanoii(n-1,mid(f,t),t);
}
}

int main()
{
int n;
cout<<"pleas intput n=";
cin>>n;
hanoii(n,1,3);
cout<<count;
getch();
}