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

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


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;
}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值