汉诺塔 终于弄明白了

/*
汉诺塔 ( 又称河内塔 ) 问题是源于印度一个古老传说的益智玩具 。 古代有一个梵塔 , 塔内
个座 A 、 B 、 C , A 座上有 64 个盘子 , 盘子大小不等 , 大的在下 , 小的在上 。 有一个和尚想把
个盘子从 A 座移到 B 座 , 但每次只能允许移动一个盘子 , 并且在移动过程中 , 3 个座上的盘
终保持大盘在下,小盘在上。在移动过程中可以利用 B 座,下面左图给出了移动方法的提示
编制递归函数输出盘子数为 4 时 ( 程序调试后 , 试试 15 个 、 20 个 , 直至 64 个 , 看看会如何
动的方案。
*/
/*
* 程序的版权和版本声明部分
* Copyright (c)2012, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: x.cpp
* 作者:徐本锡
* 完成日期: 2012年 11 月24  日
* 版本号: v1.0
* 输入描述:无

* 问题描述:无

* 程序输出:步骤

*/
//我的代码:

#include <iostream>
using namespace std;
const int discCount=3;//定义个数
void move(int n, char A, char B,char C);//声明函数
int main()
{ 
	move(discCount,'A','B','C');
	return 0;
}
void move(int n, char A, char B,char C)//自定义函数
{
	if(n==0)//盘子为0的时候返回
	{
		return;
	}
	else
	{
		move(n-1,A,C,B);//先从A到B
		cout<<A<<"-->"<<C<<endl;//再从A到C
		move(n-1,B,A,C);//最后从B到C
		return;
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十&年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值