题目网址 :http://acm.nyist.net/JudgeOnline/problem.php?pid=89汉诺塔问题的经典结论:把i个盘子从一个柱子整体移到另一个柱子最少需要步数是 2的i次方减一。那我们这个给定一个初始局面,求他到目标局面(全部移到第三个柱子上)需要的最少步数。怎么办呢!!...
分类:
其他好文 时间:
2015-05-09 01:06:57
阅读次数:
160
问题:如题回答:#include #include int p(int n) { int ans,r; if(n==1) return 1; ans=0; r=(int)(sqrt(8*n+1)-1)/2; ans+=pow(2,r)-1; ans+=2*p(n-r); retur...
分类:
其他好文 时间:
2015-05-05 19:07:39
阅读次数:
97
题目描述Description汉诺塔问题(又称为河内塔问题),是一个大家熟知的问题。在A,B,C三根柱子上,有n个不同大小的圆盘(假设半径分别为1-n吧),一开始他们都叠在我A上(如图所示),你的目标是在最少的合法移动步数内将所有盘子从A塔移动到C塔。游戏中的每一步规则如下:1. 每一步只允许移动一...
分类:
其他好文 时间:
2015-05-01 21:11:23
阅读次数:
177
汉诺塔:(Hanoi)是一种玩具,如图![这里写图片描述] (http://img.blog.csdn.net/20150430225337439)
从左到右 A B C 柱 大盘子在下, 小盘子在上, 借助B柱将所有盘子从A柱移动到C柱, 期间只有一个原则: 大盘子只能在小盘子的下面.
问题理解与描述:
1.问题的理解与描述
问题的形式化表示为:
输入:圆盘数n,3根细杆—...
分类:
编程语言 时间:
2015-05-01 09:27:31
阅读次数:
157
题目描述 Description有N个圆盘,依半径大小(半径都不同),自下而上套在A柱上,每次只允许移动最上面一个盘子到另外的柱子上去(除A柱外,还有B柱和C柱,开始时这两个柱子上无盘子),但绝不允许发生柱子上出现大盘子在上,小盘子在下的情况,现要求设计将A柱子上N个盘子搬移到C柱去的方法。输入输出...
分类:
其他好文 时间:
2015-05-01 00:35:10
阅读次数:
357
/*汉诺塔:A座有n个盘子,下面直径比上面大,要借助C座,将n个盘子移到B上,移动过程中大盘子一定在小盘子下面*/
package pack;public class Main { static int n = 10;
public static void main(String[] args) {
han(n,'A','B','C'); //将n个盘子借助C,...
分类:
其他好文 时间:
2015-04-28 23:00:32
阅读次数:
193
参考了别人的代码的总结1.四柱汉诺塔问题和n柱汉诺塔问题
题目:#include
#include
#include
using namespace std;
double f[70];void init() {
f[1] = 1;
f[2] = 3; for(int i = 3; i <= 65; i++) {...
分类:
其他好文 时间:
2015-04-25 22:46:20
阅读次数:
186
题目描述DescriptionMicrosoftInternetExplorer402DocumentNotSpecified7.8 磅Web0题目描述Description汉诺塔问题(又称为河内塔问题),是一个大家熟知的问题。在A,B,C三根柱子上,有n个不同大小的圆盘(假设半径分别为1-n吧),...
分类:
其他好文 时间:
2015-04-24 22:39:38
阅读次数:
180
汉诺塔问题递归算法分析: 一个庙里有三个柱子,第一个有64个盘子,从上往下盘子越来越大。要求庙里的老和尚把这64个盘子全部移动到第三个柱子上。移动的时候始终只能小盘子压着大盘子。而且每次只能移动一个。 1、此时老和尚(后面我们叫他第一个和尚)觉得很难,所以他想:要是有一个人能把前63个盘子先移...
分类:
编程语言 时间:
2015-04-24 18:18:13
阅读次数:
114
分治算法即将一个问题划分成多个子问题求解,最后的结果就是几个子问题的合集,通常图形类的算法,尤其是2的几次方数组问题可以优先考虑。汉诺塔和二分搜索都是分治算法的思想,个人觉得最好体现分治算法的demo是棋盘覆盖问题,代码如下:#include #include #define SIZE 4stati...
分类:
编程语言 时间:
2015-04-23 23:21:12
阅读次数:
235