第二周 汉诺塔问题
来源:互联网 发布:网络编辑培训课程 编辑:程序博客网 时间:2024/06/13 23:37
版权声明:本文为博主原创文章,未经博主允许不得转载。
在解决问题的过程中,整体思想还是非常重要的;举个例子,若有n个盘子,它的移动步骤是这样的:先将(n-1)个盘子借助第三根柱子移动到第二根柱子上,然后我们将最下面那个最大的盘子直接移动到第三根柱子上,最后我们借助第一根柱子将第二根柱子上的(n-1)个盘子移动到第三根柱子上!
- /*
- * Copyright (c++) 2017, 烟台大学计算机学院
- *All rights reserved,
- * 文件名: main.cpp
- * 作 者:李浩南
- *完成日期:2017年 9月 14日;
- * 第三周 :汉诺塔问题
- */
- #include <stdio.h>
- #define discCount 20
- long move(int, char, char,char);
- int main()
- {
- long count;
- count=move(discCount,'A','B','C');
- printf("%d个盘子需要移动%ld次\n", discCount, count);
- return 0;
- }
- long move(int n, char A, char B,char C)
- {
- long c1,c2;
- if(n==1)
- return 1;
- else
- {
- c1=move(n-1,A,C,B);
- c2=move(n-1,B,A,C);
- return c1+c2+1;
- }
- }
- 结果图
- 盘子数为4
- 盘子数为8
- 盘子数为16
- 盘子数为64
- 知识点总结:64个盘子加载不出来。
- 学习心得:时间复杂度对于设计算法来说十分重要。
阅读全文
0 0
- 第二周 汉诺塔问题
- 第二周 汉诺塔问题
- 第二周项目--汉诺塔问题
- 第二周项目3 汉诺塔问题
- 第二周 项目三-汉诺塔问题
- 第二周项目3-汉诺塔问题
- 第二周问题 硬币问题
- 第二周练习 百鸡百钱问题
- 第二周--线性回归问题
- 第二周项目3-体验复杂度(2)汉诺塔问题
- 第二周项目3体验复杂度之汉诺塔问题
- 第二周-项目3 体验复杂度-汉诺塔问题
- 第二周-项目3 体验复杂度-汉诺塔问题
- 第二周-项目3 体验复杂度-汉诺塔问题
- 第二周-项目3 体验复杂度-汉诺塔问题
- 第二周项目3体验复杂度 汉诺塔问题
- 第二周-项目3 体验复杂度-汉诺塔问题
- 第二周-项目3 体验复杂度-汉诺塔问题
- qb模拟题
- oracle索引和数据库完整性
- Android Fragment的生命周期
- Spring Boot学习记录–thymeleaf模板
- linux下useradd命令详解
- 第二周 汉诺塔问题
- Oracle执行计划 讲解(一)
- How_to_Build_IGSTK(old)
- 重装jdk后遇到的一堆问题总结
- UICC之UICC框架
- KNN算法
- loadrunner Web_类函数之web_list()
- 南阳OJ-最大和
- Fragment生命周期笔记