3t.cpp

来自「这是在学算法分析时,我分别用三个柱子和四个柱子来完成的汉诺塔的程序」· C++ 代码 · 共 40 行

CPP
40
字号
#include<iostream.h>
static int i=0;
void mov(char a,char c)
{ 
	cout<<a<<"-->"<<c;
	cout<<endl;
}
void honit(int n,char A,char B,char C,char D)
{
	
	if(n==1)
	{	mov(A,D);i=i+1;}
	else if(n==2)
	{
		mov(A,B);
		mov(A,D);
		mov(B,D);i=i+3;
	}
	else
	{
	honit(n-2,A,D,C,B);
	mov(A,C);
	mov(A,D);
	mov(C,D);
	i=i+3;
	honit(n-2,B,A,C,D);
	}
   
}
main()
{
	int n;
	cout<<"请输入盘子数为:";
	cin>>n;
	char A,B,C,D;
	honit(n,'A','B','C','D');	
	cout<<"总共移动的次数为:";
	cout<<i;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?