汉诺塔问题是一道经典的数学问题,也是智商的分界线(bushi)
问题介绍如下
(摘自网络)
假设有三根柱子 A A A、 B B B、 C C C,其中柱子 A A A 上连着 n n n 个大小不等的盘子,盘子从下到上按照大小依次递减(即最大的盘子在下面,最小的盘子在上面)。
现在要将所有的盘子从柱子 A A A 上移动到柱子 C C C 上,但移动过程中有如下限制:
- 每次只能移动柱子上的一个盘子。
- 移动盘子时,只能将盘子放到比它大小大的盘子上面,或者放到空柱子上。
- 盘子移动过程中,任何一个时刻都必须满足所有盘子按照大小递减的规则。
求解汉诺塔问题的关键是找到递归的规律。
移动次数表达式为2的n次方-1
#include<stdio.h>
/*
* Hanoi.
*/
void hanoi(int paraN, char paraSource, char paraDestination, char paraTransit)
{
if (paraN