读书人

不运用库函数进行回文数字判断

发布时间: 2012-09-20 09:36:50 作者: rapoo

不使用库函数进行回文数字判断
不使用库函数,判断回文数字。
其实最核心的就是如何将一个正整型数字转成数组,我们可以使用数学的取模%和数学的整除/将数字的各个位数取出,逐一放入目标数组中即可。

public class ReverseNumber {    /**     * @param args     */    public static void main(String[] args) {        int input = 12321;        int[] reverseNum = ReverseNumber.getReverse(input);        int[] originalNum = ReverseNumber.getReverse(reverseNum);        if (ReverseNumber.isSameArray(reverseNum, originalNum))        {            System.out.println("It is a reverse number.");        } else        {            System.out.println("It is not a reverse number.");        }    }        /*     * 将目标输入的整数,不经过库函数,转成反序的数组A。     * @input int originalNum 目标整数     * @return int[] 返回反序的数组     */    public static int[] getReverse(int originalNum)    {        int[] reversedNum = new int[30];        int i = 0;        while(originalNum != 0)        {            reversedNum[i++] = originalNum % 10; //使用数学取模操作,获得最后一位,并计入目标数组中            originalNum = originalNum / 10; //使用数学整除,移除上已经计入数组的最后一位。        }                return reversedNum;    }        /*     * 将数组反向排列一次,得到一个A的反向数组B(即原来的整数的数组形式)     * @input int[] reverseNum 要转序的数组     * @return int[] 返回转序完毕的数组     */    public static int[] getReverse(int[] reverseNum)    {        int[] descNum = new int[30];        int lengthOfNum = reverseNum.length;        for(int i = 0; i < lengthOfNum; i++)        {            descNum[lengthOfNum - i -1] = reverseNum[i];        }                return descNum;    }         /*      * 将数组A和数组B比较,看是否是反序一样的数组。      * @input int[] originalNum, int[] reversNum 要比较的两个数组      * @return boolean 返回判断结果,如果是回文数,返回true; 如果不是回文数,返回false.      */    public static boolean isSameArray(int[] originalNum, int[] reversNum)    {        boolean result = true;        if (originalNum.length == reversNum.length)        {            int len = originalNum.length;            for (int i =0; i < len; i++)            {                if (originalNum[i] != reversNum[len - i - 1])                {                    result = false;                    break;                }            }        }        else        {            result = false;        }                return result;    }}

读书人网 >编程

热点推荐