zoukankan      html  css  js  c++  java
  • 回文数

    回文数

    需求分析

    该项目需求是要判断一个数是否满足回文数的各个条件,并输出判断结果。回文数:设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数(参考百度百科对回文数的解释)

    功能设计

    • 基本功能:查找、判断并输出回文数
    • 扩展功能:输入一个区间的两个端点,判断该区间内是否存在回文数,根据判断输出相应的结果

    设计实现

    首先定义两个变量a,b,存储用户输入的区间头和尾,之后使用for循环遍历区间,逐个判断每一个数是否为回文数,判断过程见核心代码的注释。

    测试运行

    正常情况

    输入图片说明

    异常情况

    输入图片说明

    核心代码

    
            for (int i=a;i<=b ;i++) {   //遍历a到b
                int num =i;
                String str=String.valueOf(num);        //将该数转化为字符类型
                int len=str.length();             //读取字符串长度
                if (len>1){               //如果i不是个位数
                    int j=0;
                    while(j<=(len/2)-1 && str.charAt(j)==str.charAt(len-j-1)) {   //如果j未读取到字符串的一半且头尾对应位置字符相等
                        j++;
                    }
                    if(j==len/2){       //如果字符串正序和倒序相等
                        System.out.println(i);   //i为回文数
                        count++;     //计数变量加一
                    }
                }
            }
    
    
    
    

    总结

    回文数虽然比较好理解,但是相比来说通过程序实现输出区间中的回文数还是较为复杂的,这个项目中将数字转化为字符,之后使用String类的常用方法进行比较判断会比比较数字容易一点。

    PSP

    步骤 耗时(min) 百分比
    需求分析 15 21.4%
    设计 10 14.3%
    代码实现 20 28.6%
    测试 10 14.3%
    分析总结 15 21.4%
  • 相关阅读:
    [atARC088F]Christmas Tree
    [atARC109F]1D Kingdom Builder
    [luogu4259]寻找车位
    [atARC087F]Squirrel Migration
    [atARC087E]Prefix-free Game
    [atARC110F]Esoswap
    [atARC110E]Shorten ABC
    [atARC084D]Small Multiple
    [atARC083F]Collecting Balls
    [hihocoder][Offer收割]编程练习赛49
  • 原文地址:https://www.cnblogs.com/20175317zrw/p/10923636.html
Copyright © 2011-2022 走看看