回文数

Posted 20175317zrw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了回文数相关的知识,希望对你有一定的参考价值。

回文数

需求分析

该项目需求是要判断一个数是否满足回文数的各个条件,并输出判断结果。回文数:设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%

以上是关于回文数的主要内容,如果未能解决你的问题,请参考以下文章

代码题(16)— 回文

ZZNUOJ_C语言1107:回文数猜想(函数专题)(完整代码)

leetcode-9.回文数(图)

Manachar算法详解

判断一个数是否为回文数

ZZNUOJ_C语言1106:回文数(函数专题)(完整代码)