关闭

汉诺塔问题

2096人阅读 评论(0) 收藏 举报
#include <iostream>
using namespace std;
static i=0;
int main()
{
	
	void hanota(int , char , char , char );
	cout<<"您要移动多少盘子?";
    int n;
	cin>>n;
	hanota(n, 'A', 'B', 'C');
	cout<<"一共移动了"<<i<<"次!!"<<endl;
	return 0;
}
void hanota(int n, char a, char b, char c)
{
	void move(char , char );
	if (n==1)  move(a,c);
	else
	{
		hanota(n-1, a, c, b);
		move(a, c);
		hanota(n-1, b, a, c);
	}
}
void move(char x, char y)
{
	cout<<x<<"--->"<<y<<endl;
	i++;
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:13624次
    • 积分:280
    • 等级:
    • 排名:千里之外
    • 原创:15篇
    • 转载:4篇
    • 译文:0篇
    • 评论:9条
    最新评论