题目:
输入一个数,判断它是不是回文数。
思路:
回文数:第一位和最后一位数字相同,第二位和倒数第二位相同…
将该数的各个数位逆序,构造成新数,再与原数比较,若相等,则为回文数,若不等,则不是。
如将1221逆序后仍为1221,则1221为回文数;
将1236逆序后为6321,与原数1236不等,则1236不是回文数。
利用n%10可获得最后一位数,利用n/10可去掉最后一位。如:
n = 1236
i = n%10 = 6 i为最后一位
new = 0*10+i =6
n = n/10 = 123
i = n%10 = 3
new = new10+1 = 610+3 = 63
…
实现:
public class Palidromic {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner reader = new Scanner(System.in);
int num = reader.nextInt();
int old = num; //将输入的数字保存副本
int newnum = 0;
//将原数逆序,再比较是否相等
while(num>0)
{
newnum = newnum*10+num%10;
num = num/10;
}
if(newnum == old)
{
System.out.println("是的!");
}else
{
System.out.println("不是的!");
}
}
}