第三周项目三-体验复杂度2(汉诺塔问题)
来源:互联网 发布:大数据关键技术 编辑:程序博客网 时间:2024/06/11 19:57
/* *Copyright (c) 2017, 烟台大学计算机学院 *All rights reserved. *文件名称:zha.cpp *作者:张思琦
*完成日期:2017年9月13日 *版 本 号:v1.0 * *问题描述:汉诺塔问题(计算移动n个盘子需要移动的次数) *输入描述:盘子数目n *程序输出:见程序运行截屏 */#include <stdio.h>#define discCount 32long long move(long long, char, char,char);int main(){ long long count; count=move(discCount,'A','B','C'); printf("%d个盘子需要移动%I64d次\n", discCount, count); return 0;}long long move(long long n, char A, char B,char C){ long 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; }}
因为盘子需要移动的次数实在太大了,它超过了32位整形数所能表示的数据范围(32位整形数所能表示的最大数是2147483647,这个数刚好是盘子数为31时所需要移动的次数!所以当盘子数为32时再用32位整形数就不行了。
知识点总结:
使用了递归的思想,虽然递归思想在有些时候不是很好理解,但它的应用却是非常广泛的!
学习心得:
递归是一个很有趣的方法,有许多地方都会用到递归(比如DFS),学习的过程中需要细心和耐心!
阅读全文
0 0
- 第三周项目三-体验复杂度2(汉诺塔问题)
- 第三周项目三-体验复杂度2(汉诺塔问题)
- 项目三-体验复杂度(2)汉诺塔
- 项目三-体验复杂度(2)汉诺塔
- 第二周 【项目三】体验复杂度(2)汉诺塔
- 第2周项目三 体验复杂度
- 第二周 项目三-- (体验复杂度)汉诺塔
- 第二周项目三—体验复杂度(2)
- 第二周项目三-体验复杂度(2)
- 项目3-2 体验复杂度 汉诺塔问题
- 第2周项目3-(2)体验复杂度、汉诺塔问题
- 第二周项目3-体验复杂度(2)汉诺塔问题
- 第二周——项目三(2)—体验复杂度-汉诺塔
- 第三周项目4体验复杂度
- 第三周项目3体验复杂度
- 【项目3(2)-体验复杂度 汉诺塔】
- 项目3-体验复杂度 2)汉诺塔
- 第2周项目三体验复杂度2
- Centos7 下MySQL5.7 远程连接
- 编译、链接学习笔记(五)动态链接
- 预算一万以内的机器学习台式机/主机配置推荐
- 曼哈顿距离,欧式距离,明式距离,切比雪夫距离区别
- 《Android 开发工程师面试指南》
- 第三周项目三-体验复杂度2(汉诺塔问题)
- vue with zTree——带复选框的树
- 小结
- AudioDirector 8中文免费版下载附安装使用教程
- CSS样式设置小技巧
- Webbench-1.5的安装与使用
- oracle使用uuid自增
- Memcache 持久性分布式数据库MemcacheDB
- 深搜和广搜(初学者)