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

  • 相关阅读:
    集合---Map
    一个机器部署多个tomcat
    JavaScript要不要加分号";"
    Nodejs 路径 /, ./, ../, ..// 的区别
    玩转Vue的24个小程序---基础篇
    如何创建Node.js Web服务器
    为什么Ajax XMLHttpRequest POST方法传递参数失败了
    字典元素如何遍历
    Beautiful Soup 如何获取到href
    如何查看Ajax请求
  • 原文地址:https://www.cnblogs.com/ylx111/p/5982164.html
Copyright © 2020-2023  润新知