神奇的汉若塔神话留给了程序员来演绎:
#include "stdio.h"
#include "string.h"
void MoveSingle(char a,char b)
{
printf("move from %c to %c \n",a,b);
}
void MoveTower(int n,char start, char end,char temp)
{
if (n==1)
{
MoveSingle(start,end);
}
else
{
MoveTower(n-1,start,temp,end);
MoveSingle(start,end);
MoveTower(n-1, temp,end, start);
}
}
int main()
{
MoveTower(8, 'a','b', 'c');
}
大家还是不要去追究递归是如何迭代的吧,反正计算机会帮我们完成,就让他迭代嘛,只要简单情景正确,分解子问题ok就解决啦。
![微笑](http://static.blog.csdn.net/xheditor/xheditor_emot/default/smile.gif)