• 课程作业02-1-课后作业1-(3、4)汉诺塔、回文数


    3.1程序设计思想:调用递归函数,终止条件为参数N=1;移动盘子时,利用两个函数,将盘子移动,利用中间的b柱子作为跳板,递归函数求出具体步骤,引用另一个函数具体输出盘子移动的步骤.

    3.2源程序代码:

     1 //信1605-3  20163429  刘瑞欣
     2 import java.util.Scanner;
     3 public class Digui 
     4 {
     5     static private int number = 0;
     6     public static void main(String[] args) 
     7     {
     8          Scanner in = new Scanner(System.in );
     9          char A = 'A';
    10          char B = 'B';
    11          char C = 'C';
    12          System.out.println("输入盘子数");
    13          int num = in.nextInt();  
    14          solveHanoiTower(num,A,B,C);
    15          in.close();
    16     }
    17     private static void move(int num,char start,char end)
    18     {
    19          number++;
    20          System.out.println("第"+number+"步操作是将盘子从:"+start+"-->"+end);
    21     }
    22     private static void solveHanoiTower(int num,char A,char B,char C) 
    23     {
    24         if(num==1)
    25         {
    26             move(1,A,C);
    27         }
    28         else
    29         {
    30             solveHanoiTower(num-1,A,C,B);
    31             move(num,A,C);                 
    32             solveHanoiTower(num-1,B,A,C);
    33         }
    34      }
    35  }

    3.3结果截图:

    4.1设计思想:定义字符串储存想要的验证的字符串,定义一个数组储存,将两个数组首尾进行比较,结束条件为比较到数组的中值处

    4.2源程序代码:

    //信1605-3  20163429  刘瑞欣
    import java.util.Scanner;
    public class huiwen
    {
        public static void main(String[] args) 
        {
            Scanner put =new Scanner(System.in);
            System.out.println("输入字符串:");
            String a = put.nextLine();//定义字符串
            char[] ch = new char[a.length()];
            for(int i = 0;i<a.length();i++)
            {
                ch[i] = a.charAt(i);
            }//将字符穿赋值给数组
            if(zifu(ch,ch.length)==0)//引用函数体
            {
                System.out.println("该字符串不是回文!");
            }
            else
            {
                System.out.println("该字符串是回文!");
            }//
            put.close(); 
         }
        private static int zifu(char[] c,int i) 
        {
            int size = c.length;
            if(i == size/2)
            {
                return 1;
            }
            if(c[size - i] == c[i-1])
            {
               return zifu(c,i-1);
            }
            else
                return 0;
         } //递归函数判断字符串是否为回文数
    }

    4.3结果截图:

  • 相关阅读:
    kernel makefile分析 之include路径分析
    python模块,包,安装
    python 资源
    Python版QQ群发消息
    marvell 88f6282 工程包制作
    CPU : 二级缓存容量
    编译多个文件到内核模块
    展布频谱(Spread Spectrum, SS)
    编程练习 链表题目反序,合并
    汇编语言基础之七 框架指针的省略(FPO)
  • 原文地址:https://www.cnblogs.com/liurx/p/7664942.html
Copyright © 2020-2023  润新知