《数据结构(严蔚敏版)》学习笔记(四)——Hanoi塔问题
一个递归求解的问题:
No.1 : x-->z
对于每第n-1层的盘子,通过三步从x移到z
No.n-1: x-->(z)-->y
No.n : x-->z
No.n-1: y-->(x)-->z
/*---------$Hanoi塔问题$-------*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int c=0;
<pre name="code" class="cpp">void move(char x,int n,char y)
{
printf("%d. Move disk %d from %c to %c\n",++c,n,x,y);
}
hanoi塔的移动步数K
K = 2^n-1
(归纳法证)