检查数字是否为回文数据的逻辑

时间:2014-04-11 16:34:07

标签: java loops palindrome

我做了一个程序来检查一个数字是否是回文但是无法理解 - 当n = 1且我做n / 10时它应该不是= 0因为int n = 1/10 = 0.1 = 0所以循环应该停止?但它打印为1然后为0。这是怎么发生的?

import java.util.Scanner;


public class Pallinnumber
{
    public static void main(String[] args) 
    {
        int y =reversenum(1234);
        System.out.println(y);
        Pallinnumber.Pallinnum(12);
        Scanner s = new Scanner(System.in);
        System.out.println("Enter the number");
        int x = s.nextInt();
        int z= reversenum(x);
       System.out.println(z);

}

    public static int reversenum(int n)
    {
        int num=0;
        while(n>0)
        {
            num = num*10;
            num=num+n%10;
            n=n/10;
            System.out.println(n);      

        }
    return num;
    }
public static boolean Pallinnum(int n)
{
    if(n==reversenum(n)){
        System.out.println("It is a Pallindrome number");
        return true;
    }
    else 
        {   

            System.out.println("It is not an Pallindrome number");
            return false ;

        }
    }

}

3 个答案:

答案 0 :(得分:0)

代码中没有错误:当n1时,您在将<{1}}添加到正在运行的总计后执行n /= 10 (即n%10)。这使得num等于num,这就是您想要的。

当你的循环打印为零时,1已经等于num

答案 1 :(得分:0)

它是int算术,所以:1/10 = 0

答案 2 :(得分:0)

从技术上讲,解决方案是完美的。

你试过System.out.println(1/10);有趣的是,它也显示为0.它的全部数学和数学编译器。

package univ;
import java.util.Scanner;


public class Pallinnumber
{
    public static void main(String[] args) 
    {

        Scanner s = new Scanner(System.in);
        System.out.println("Enter the number");
        int x = s.nextInt();
        int z= reversenum(x);
       System.out.println(z);
       Pallinnum(z);

}

    public static int reversenum(int n)
    {
        int num=0;
        while(n>0)
        {
            num = num*10;
            num=num+n%10;
            n/=10;
        }
    return num;
    }
public static boolean Pallinnum(int n)
{
    if(n==reversenum(n)){
        System.out.println("It is a Pallindrome number");
        return true;
    }
    else 
        {   

            System.out.println("It is not an Pallindrome number");
            return false ;

        }
    }
}