hanoi塔

hanoi塔问题:

1.规则:一次移动一个盘子,小盘子压大盘子上面,有A、B、C三个柱子,A是起始放盘子的柱子,B是中间可以借助的柱子,C是最后放盘子的位置

2.简单思路:
如果有1个盘子,就是将这一个盘子直接从A->C

--> 

如果有两个盘子,就是将上面的小盘子先放在B上面,再将下面的大盘子放在C上面,最后再将放在B上面的小盘子放到C上面

--->--->

--->
如果有n个盘子,就是将上面的n-1个小盘子放在B上面,再将下面的大盘子放在C上面,最后再将放在B上面的n-1个小盘子放到C上面

--->--->

--->

3.代码:

总结就是三步走:

第一步:

hanoi(n-1,A,C,B)//先将n-1个小盘子从A挪到到B,借助于C

第二步:

printf("%c->%c",A,C)//将最下面的大盘子直接挪到C上面,此时可以打印出来

第三步:

hanoi(n-1,B,A,C);//再将在B上面的n-1个小盘子挪到C上面借助于A

完整代码:(不要忘记递归的结束条件哦)

id hanoi(int n,char A,char B,char C) {
	if (n==0) {
	}
	else {
		hanoi(n - 1, A, C, B);
		printf("%c->%c ",A,C);
		hanoi(n - 1, B, A, C);
	}
}

int main() {
	hanoi(3,'A', 'B', 'C');
	return 0;
}

相关推荐

  1. <span style='color:red;'>hanoi</span><span style='color:red;'>塔</span>

    hanoi

    2024-04-26 10:42:02      42 阅读
  2. Strange-Towers-of-Hanoi

    2024-04-26 10:42:02       52 阅读
  3. P2234 [HNOI2002] 营业额统计

    2024-04-26 10:42:02       30 阅读
  4. 夫特原则

    2024-04-26 10:42:02       61 阅读
  5. LeetCode魔游戏

    2024-04-26 10:42:02       48 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-26 10:42:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-26 10:42:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-26 10:42:02       82 阅读
  4. Python语言-面向对象

    2024-04-26 10:42:02       91 阅读

热门阅读

  1. 市场投放用户获取方面如何做数据分析

    2024-04-26 10:42:02       34 阅读
  2. Cache缓存

    2024-04-26 10:42:02       32 阅读
  3. C语言——const

    2024-04-26 10:42:02       29 阅读
  4. Python类方法装饰器

    2024-04-26 10:42:02       34 阅读
  5. 若依-禁用本地定时任务

    2024-04-26 10:42:02       40 阅读
  6. HTML中datalist的用法

    2024-04-26 10:42:02       30 阅读
  7. 2014NOIP普及组真题 2. 比例简化

    2024-04-26 10:42:02       28 阅读
  8. 采用状态转移矩阵方式的快速哈夫曼解码算法

    2024-04-26 10:42:02       33 阅读
  9. 【QT进阶】Qt线程与并发之QtConcurrent的简单介绍

    2024-04-26 10:42:02       40 阅读