03-JAVA方法

答:我发现这两个方法的返回类型以及参数类型不一样。

package 汉诺塔问题; /*
*汉诺塔问题
*作者:徐浩军 日期:16.10.16 天气:晴
*/
public class TowersOfHanoi
{
//用于递归移动盘子
public static void solveTowers( int disks, int sourcePeg,
int destinationPeg, int tempPeg ) //第一个参数的意思是盘子的总数,第二个参数的意思是起始盘,第三个参数是目标盘,第四个参数是辅助盘
{
// 当只有一个盘子的时候直接从起始盘移动到目标盘
if ( disks == 1 )
{
System.out.print( sourcePeg+" -->"+destinationPeg+ " ");
return;
} // 终止条件
//递归步骤:首先把N-1个盘子从起始盘借助目标盘移动到辅助盘
solveTowers( disks - 1, sourcePeg, tempPeg, destinationPeg ); // 把起始盘上的最后一个盘子移动到目标盘上
System.out.print( sourcePeg+" -->"+destinationPeg+ " "); // 从辅助盘上把N-1个盘子移动到目标盘上
solveTowers( disks - 1, tempPeg, destinationPeg, sourcePeg );
} // 结束 public static void main( String[] args )
{
int startPeg = 1; // 起始盘
int endPeg = 3; // 目标盘
int tempPeg = 2; // 辅助盘
int totalDisks = 3; // 盘子的总数 // 进行移动
solveTowers( totalDisks, startPeg, endPeg, tempPeg );
} // main结束
} //类终止
程序设计思路:
这个问题很明显要用递归的思想来解决问题。
首先定义一个函数用来进行递归操作,
参数有盘子的总数N,起始柱子A,目标柱子B,以及辅助柱子C。
递归实现:先把A上的N-1个盘子移到B上,然后把A上的第N个盘子移到C上,最后把B上的N-1个盘子移到C上,
通过递归,这个问题解决了。

首先终止条件是当只有一个或者零个字符的时候,他是回文的。通过递归,先判断第N个与第一个,在判断第N-1个与第二个。最后就可以解决这个问题。
03-JAVA方法的更多相关文章
- Java-Runoob-高级教程-实例-方法:03. Java 实例 – 汉诺塔算法-un
		ylbtech-Java-Runoob-高级教程-实例-方法:03. Java 实例 – 汉诺塔算法 1.返回顶部 1. Java 实例 - 汉诺塔算法 Java 实例 汉诺塔(又称河内塔)问题是源 ... 
- [03]java中的方法以及控制语句
		00 Java中的语句块 语句块(有时叫做复合语句),是用花括号扩起的任意数量的简单Java语句.块确定了局部变量的作用域.块中的程序代码,作为一个整体,是要被一起执行的.块可以被嵌套在另一个块中,但 ... 
- 065 01 Android 零基础入门  01 Java基础语法 08 Java方法 02 带参无返回值方法
		065 01 Android 零基础入门 01 Java基础语法 08 Java方法 03 带参无返回值方法 本文知识点:带参无返回值方法 说明:因为时间紧张,本人写博客过程中只是对知识点的关键步骤进 ... 
- 003  01 Android 零基础入门  01 Java基础语法 01 Java初识 03 Java程序的执行流程
		003 01 Android 零基础入门 01 Java基础语法 01 Java初识 03 Java程序的执行流程 Java程序长啥样? 首先编写一个Java程序 记事本编写程序 打开记事本 1.wi ... 
- C++调用JAVA方法详解
		C++调用JAVA方法详解 博客分类: 本文主要参考http://tech.ccidnet.com/art/1081/20050413/237901_1.html 上的文章. C++ ... 
- JNI中C调用Java方法
		背景需求 我们需要在JNI的C代码调用Java代码.实现原理:使用JNI提供的反射借口来反射得到Java方法,进行调用. JNI关键方法讲解. 1. 在同一个类中,调用其他方法 JNIEXPORT v ... 
- Atitit java方法引用(Method References) 与c#委托与脚本语言js的函数指针
		Atitit java方法引用(Method References) 与c#委托与脚本语言js的函数指针 1.1. java方法引用(Method References) 与c#委托与脚本语言js ... 
- C#调用Java方法(详细实例)
		C#可以直接引用C++的DLL和转换JAVA写好的程序.最近由于工作原因接触这方面比较多,根据实际需求,我们通过一个具体例子把一个JAVA方法转换成可以由C#直接调用的DLL C#调用c++ C#调用 ... 
- Android C代码回调java方法
		本文将讲述下列三种C代码回调java方法 1.c代码回调java空方法 2.c代码回调java int类型参数方法 3.c代码回调javaString类型参数方法 方法都差不多,先看c代码回调java ... 
- oracle调用java方法的例子(下面所有代码都是在sql/plus中写)
		在Oracle中调用Java程序,注意:java方法必须是static类型的,如果想在JAVA中使用system.out/err输出log. 需要在oracle 中执行"call dbms_ ... 
随机推荐
- intellij idea使用配置jetty maven 插件
			pom.xml中更改或则添加: <build> <finalName>mall</finalName> <plugins> <plugin> ... 
- mysql的ONLY_FULL_GROUP_BY语义 --转自http://www.wtoutiao.com/p/19dh3ec.html
			执行SET GLOBAL sql_mode = ''; 把sql_mode 改成非only_full_group_by模式.验证是否生效 SELECT @@GLOBAL.sql_mode 或 SELE ... 
- MSClass 和setInterval 的并发,ajax定时有采集信息滚动显示
			setTimeout 用于延时器,只执行一次. setInterval:用于多次执行. //****************************************** 项目中引用到jquer ... 
- android学习笔记57——Service_2
			Service生命周期 参考:http://codingnow.cn/android/515.html 应用程序启动服务的方式不同,其生命周期也有所不同. startService生命周期如下左图: ... 
- makefile自动生成依赖关系
			手工编写依赖关系不仅工作量大而且极易出现遗漏,更新也很难及时,修改源或头文件后makefile可能忘记修改.为了解决这个问题,可以用gcc的-M选项自动生成目标文件和源文件的依赖关系.-M选项会把包含 ... 
- sql 下,float和numeric
			搜了下两者的区别,答案其实很明显: numeric支持最长38位长度的数字,只有在你要的数字的长度超过38位时才推荐使用float 原因是,float在保存和提取,以及数学计算等方面,会产生于期待记过 ... 
- Linux下date命令,格式化输出,时间设置
			date命令的帮助信息 [root@localhost source]# date --help用法:date [选项]... [+格式] 或:date [-u|--utc|--universal] ... 
- java堆内存和栈内存的处理
			前段时间学习二叉树在处理删除操作的时候遇到一个头疼的问题:删除节点的时候明明已经置null了可树上该节点依旧存在,还必须执行node.father.left = null;才可以删除node节点,寻找 ... 
- 黑马程序员_  JAVA中的多线程
			------- android培训.java培训.期待与您交流! ---------- 尽管线程对象的常用方法可以通过API文档来了解,但是有很多方法仅仅从API说明是无法详细了解的. 本来打算用一节 ... 
- Chap5: question 35 - 37
			35. 第一个只出现一次的字符 char firtNotRepeat(char *s) { if(s == NULL) return 0; int i = 0; while(s[i] != '\0') ... 
