zoukankan      html  css  js  c++  java
  • 第二次课堂测试1

     1 package digui;
     2 
     3 import java.util.Scanner;
     4 
     5 public class Digui {
     6 public static void main(String args[])
     7 {
     8     String s;
     9     Scanner sr=new Scanner(System.in);
    10     System.out.println("请输入一段字符串");
    11     s=sr.next();
    12     int i=0,j=s.length()-1;
    13     int sum=0;
    14     if(s.length()==1)
    15     {
    16         System.out.println("字符串回文");
    17         
    18     }
    19     else{
    20         if(di(s,i,j,sum))
    21         {
    22             System.out.println("字符串回文");
    23         }
    24         else
    25         {
    26             System.out.println("字符串不回文");
    27         }
    28         
    29     }
    30 }
    31 public static boolean di(String s,int i,int j,int sum)
    32 {
    33     
    34     if(i==j&&sum%2==0&&sum!=0)
    35     {
    36 
    37         return true;
    38         
    39     }
    40         
    41         if(s.charAt(i)==s.charAt(j))
    42         {
    43             sum+=2;
    44             i++;j--;
    45         }
    46         else 
    47             return false;
    48         return di(s,i,j,sum);
    49 }
    50 }

    程序目的:是输入一行字符串然后判断字符串是否“回文”,就是判断字符串从前和从后读是否一样,如“我爱我”;

    程序思想:用递归调用解决问题,每次调用都遍历字符串,同时从前和从后遍历,当下标表示i和j一样时循环终止,在循环中若是有前后对应位置的字符串不同就退出调用。最后在主函数中调用函数进行判断输出。

    程序感悟:本次测试主要是测试递归的调用,本次测试后我总结了两点:

    1.递归需要有终止条件(一般是if条件语句的判断);

    2.递归需要每次返回调用,并在每次调用时都能减少运行复杂度。

  • 相关阅读:
    Python分析网页中的<a>标签
    Python3.X爬虫
    如何使你的窗体样式固定,不因系统设定而变化
    C# 窗体内有子控件时鼠标检测
    VS新建项目工具箱图标丢失问题
    在c#中使用bitblt显示图片
    DotNetBar 中Ribbon汉化
    汉化DotNetBar中控件的系统文本
    castle动态代理的使用
    FastReport 套打全攻略
  • 原文地址:https://www.cnblogs.com/w669399221/p/11584907.html
Copyright © 2011-2022 走看看