2019.9.23 作业1

设计思想:

  1. 分析题目要求为判断回文数,回文数的特点为从前往后读与从后往前读都一样。例如:abccba。除此之外,当输入的字符长度为1或0的时候,系统也判断为回文数。(特例)
  2. 老师要求为使用递归函数,首先要有递归函数停止的条件,即为0或1或某些特例的情况下递归停止运行,除此之外,还要有一般情况。
  3. 编写代码  将特殊条件与一般条件分类,并判断递归能否在合适位置停止

程序源码:

 1 import java.util.Scanner;
 2 
 3 public class TestPalindrome {
 4     
 5     public static Scanner sc=null;
 6     static int b=0;
 7     /**
 8      *  使用递归判断是否是回文数   回文数: aaa aaa   从前往后读或从后往前读是一样的
 9      * @param a
10      * @param b
11      * @return
12      */
13     public static String judge(String a,int b) {
14         
15         if(a.length()==0||a.length()==1||(a.length()/2)==b||b==(a.length()+1)/2) { 
16             return "回文数!";
17         }
18         else {
19         //a.charAt()  是从0开始计数的,最大位a.length()-1
20          if(a.charAt(b)!=a.charAt(a.length()-1-b))
21          {
22              return "不是回文数!";
23          }else {
24              b++;
25             return  judge(a,b);
26          }    
27     }
28 }
29     
30     
31     public static void main(String[] args) {
32         System.out.println("请输入字符串:");
33         sc=new Scanner(System.in);
34         String c=sc.next();
35         b=0;
36        System.out.println(judge(c,b));
37 
38     }
39 
40 }

运行测试:

 

 

 

 

编程总结分析:

 本次编程是对于回文数的判断分析,在编写程序过程中,由于我对回文数的概念理解不对,导致编程无法进行,这是一个最大的问题。对于编程,我首先应该理解所要解决的问题,真正去读懂,理解它,然会再去编程,而不是在一知半解的情况下去进行编程,用代码去实现它,这样,即便做出来了,也是不符合要求的。

在编译过程中用到了String类中的方法,例如:charAt()方法,返回指定索引处的char值。即返回一个char类型。Length()函数,返回String的长度。

 

posted @ 2019-09-25 12:19  不懂就要问!  阅读(138)  评论(0编辑  收藏  举报