zoukankan      html  css  js  c++  java
  • java动手动脑3

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

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

    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 = 3; // 盘子的总数
    // 进行移动
    solveTowers( totalDisks, startPeg, endPeg, tempPeg );

    程序思路:

    定义一个函数用来进行递归操作,参数有盘子的总数N,起始柱子A,目标柱子B,辅助柱子C。

    实现方法:先把A上的N-1个盘子移到B上,然后把A上的第N个盘子移到C上,最后把B上的N-1个盘子移到C上,递归完成。

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

    通过递归,先判断第N个与第一个,在判断第N-1个与第二个。即可解决这个问题。

  • 相关阅读:
    宿舍助手app——个人工作第四天
    宿舍助手app——个人工作第三天
    对QQ输入法的评价
    冲刺9
    冲刺8
    冲刺7
    冲刺6
    冲刺5
    冲刺4
    冲刺3
  • 原文地址:https://www.cnblogs.com/ylx111/p/5982164.html
Copyright © 2011-2022 走看看