河内之塔计算方法
public class Hanoi
{
public static void main(String args[])
{
System.out.print("请输入有几个盘子:");
Scanner s = new Scanner(System.in);
Hanoi hanoi = new Hanoi();
hanoi.move(s.nextInt(), 'A', 'B', 'C'); }
public void move(int n, char a, char b, char c)
{
if(n == 1)
{
System.out.println("盘子由 " + a + " 移至 " + c);
}
else {
move(n - 1, a, c, b);
move(1, a, b, c);
move(n - 1, b, a, c);
}
}
}
汉诺塔计算公式思路来由:想要将n个盘子从A棍移动到C棍 进行的移动次数为
(2的N次方-1)次
使用递归的方法是因为:当现在有5个盘子需要三个棍子ABC中从A移动到C,那么首先应该将前四个盘子当成一个整体1,然后将整体1先移动到B棍上;然后将第五个盘子移到C棍上;然后将整体1从B棍移动到C棍上.........对于前四个盘子来说,先将前3个盘子放在移动到C棍上,将第四个盘子移动到B棍上,然后将前三个盘子移动到B棍上,然后将第五个盘子放到C棍上,然后将B棍上的4个盘子移动到C棍上........依照这种反推整体移动方法来推论盘子的移动方式正好和递归方式吻合,所以才大概会有以上的计算公式吧.......
------------------------------------------------------------------------------------------------
相关推荐
计算方法-非线性方程(java实现) 计算方法-非线性方程(java实现) 计算方法-非线性方程(java实现) 计算方法-非线性方程(java实现) 计算方法-非线性方程(java实现) 计算方法-非线性方程(java实现)
数值计算方法--插值函数(java实现) 数值计算方法--插值函数(java实现) 数值计算方法--插值函数(java实现) 数值计算方法--插值函数(java实现) 数值计算方法--插值函数(java实现) 数值计算方法--插值函数(java实现) ...
常用的java数值计算方法.docx
java编程计算有效工作时间的方法.java
将JAVA的加减乘除,正弦余弦等科学运算封装成方法,在开发需要公式计算的项目的时候,直接可以调用
计算方法Java版 计算方法Java版
主要介绍了Java基于余弦方法实现的计算相似度算法,简单说明了余弦相似性的概念、原理并结合实例形式分析了java实现余弦相似性算法的相关操作技巧,需要的朋友可以参考下
我写的计算方法的实验,大家不要见笑,呵呵。(江科大——费小勇)
java 简单计算 nutrition code 运用java 最基本的计算方法去实现生活中的简单计算
java的统计学包,可以记性数据概述、比较、回归、分类、聚类、因素分析等等
Java高精度计算Java高精度计算Java高精度计算Java高精度计算Java高精度计算Java高精度计算Java高精度计算Java高精度计算Java高精度计算Java高精度计算Java高精度计算Java高精度计算
描述各种函数的求法,并附相应的代码简介,可便于出力复杂函数的计算及其求参数计算.
java日期计算简单实用方法如下: SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); WorkdayUtils workdayUtils = new WorkdayUtils(); workdayUtils.setLegalWorkdayList(legalWorkdayList); ...
共有数值计算中常用的Java方法近200个.内容包括:解线性代数方程组、插值、数值积分、特殊函数、函数逼近、随机数、排序、特征值问题、数据拟合、方程求根和非线性方程组求解、函数的极值和最优化、数据的统计描述...
利用Java计算并生成对应农历,实现日期与农历之间的对应转换
基本包含《计算方法》中的所有试验代码,这是本人在做实验时实现了的,通过了老师的检查。本人是采用java的Fram框架实现的,可以提供学习参考......
java 使用构造方法的重载计算课程的GPA值 java 使用构造方法的重载计算课程的GPA值
使用Java实现的通过DES、3DES进行MAC计算的工具
Java数值计算算法编程