• 课程作业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结果截图:

  • 相关阅读:
    微服务网关常用限流算法
    微服务网关zuul介绍
    Nginx实现微服务网关的简单介绍
    11.9-编写操作者
    11.5-编写程序
    11.3-学习操作者文档
    11.2-LV面向对象编程视频学习及周五与老师交流总结
    10.29-基于LabVIEW的分布式集群机器人控制系统
    10.27-运用操作者框架架设控制中心软件架构
    5.24-29离线解析问题
  • 原文地址:https://www.cnblogs.com/liurx/p/7664942.html
Copyright © 2020-2023  润新知