您的位置:首页 > 编程语言 > Delphi

实战DELPHI:远程线程插入(DLL注入)

2010-12-10 16:39 148 查看
汉诺塔这么经典的算法,虽然很早就听说过但是真正玩还是今天。看起来好象很麻烦,但是只要抓住了其中最重要的两步就迎刃而解了。

其实我们可以想象,最初有n个盘子在柱子a上,要将其全部挪到柱子b上。移动过程中盘子的顺序是不准颠倒的,还有一个辅助的柱子c。如果要解决问题,就要先将柱子a上的前n-1个盘子全部挪到柱子c上;这样,再将最后一个盘子挪到b上;最后再将柱子c上的n-1个盘子挪到b上就可以大功告成了。

上面这一大步就是这个算法的精髓了.

void HanNuoMove(char a, char b, char c, int n)
{
if(n == 1)
{
printf("move %d from %c to %c\n", n, a, b);
}
else
{
HanNuoMove(a, c, b, n-1);
printf("move %d from %c to %c\n", n, a, b);
HanNuoMove(c, b, a, n-1);
}
}
int main()
{
int n = 5;
char A = 'a';
char B = 'b';
char C = 'c';
HanNuoMove(A, B, C, n);
return 0;
}本文出自 “bluefish” 博客,请务必保留此出处http://bluefish.blog.51cto.com/214870/79922
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: