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个与第二个。即可解决这个问题。

  • 相关阅读:
    Jungle Roads POJ 1251
    Light OJ 1234 Harmonic Number
    同余定理
    HDU---1052---田忌赛马
    田忌赛马---空手道俱乐部
    poj---1182---食物链
    Convenient Location(最短路之弗洛伊德)
    js动画实现透明度动画
    js动画实现侧边栏分享
    AngularJS 指令(使浏览器认识自己定义的标签)
  • 原文地址:https://www.cnblogs.com/ylx111/p/5982164.html
Copyright © 2011-2022 走看看