java思维题_java思考题

1.观看一下代码,你发现了什么特殊之处?

1bde71451557d99d0d5d6693bf48ce67.png

返回值类型以及参数类型不一样。

2.解决汉诺塔问题

代码:

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 = 4; // 盘子总数

solveTowers( totalDisks, startPeg, endPeg, tempPeg );

}

}

程序设计思路:定义一个函数进行递归操作,盘子总数为N,1为起始盘,2为辅助盘,3为目标盘,先把1上的N-1个盘子移到2上,再把1上的最后一个盘子移到3上,最后把2上的N-1个盘子移到3上,然后递归,直至完成。

3.通过递归判断字符串是否回文

回文是指正着读和反着读都一样,比如“我是谁是我”,先判断第1个和第N个,然后判断第2个和第N-1个......通过递归,当最后只有一个或零个字符时,程序终止,结束。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
总共11页 一万字左右 皆为个人上课整理笔记。 贴上前几道整理以作预览 1、 缩写JDK的含义是什么。 JDK 是Java开发工具包 (Java Development Kit ) 的缩写。它是一种用于构建在 Java 平台上发布的应用程序、applet 和组件的开发环境。其中包括了Java编译器、JVM、大量的Java工具以及Java基础API里面是Java类库和Java的语言规范,同时Java语言的任何改进都应当加到其中,作为后续版本发布。要成为一名程序员,JDK是一种最基本的工具。 (JDK是Java development toolkit,相当于是Java的库函数,是编译,运行java程序的工具包。) 2、 解释Java语言跨平台的技术基础。 因为Java程序编译之后的代码不是能被硬件系统直接运行的代码,而是一种“中间码”——字节码。然后不同的硬件平台上安装有不同的Java虚拟机(JVM),由JVM来把字节码再“翻译”成所对应的硬件平台能够执行的代码。因此对于Java编程者来说,不需要考虑硬件平台是什么。所以Java可以跨平台。 3、 什么是Java语言的自动垃圾收集。 4、 说明J2SE、J2ME、J2EE各自的含义。 J2EE是Java 2 enterprise edition是Java的一种企业版用于企业级的应用服务开发 J2SE是Java 2 standard edition是Java的标准版,用于标准的应用开发 J2ME是Java 2 Micro Edition是Java的微型版,常用于手机上的开发 J2EE,J2SE,J2ME是java针对不同的的使用来提供不同的服务,也就是提供不同类型的类库。 5、 Java的包是什么含义,有哪些作用。 包就是用来装不同java源文件和类文件的文件夹。 作用有两个:一个是防止重名现象,还有一个是隐藏具体实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值