Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 检查数字是否为回文的逻辑_Java_Loops_Palindrome - Fatal编程技术网

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

Java 检查数字是否为回文的逻辑,java,loops,palindrome,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);

我制作了一个程序来检查一个数字是否是回文的,但无法理解——当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 ;

        }
    }

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


当循环打印零时,
num
已经等于
1
这是int算法,因此:1/10=0

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

你试过系统输出打印(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 ;

        }
    }
}

步骤1:正确设置代码格式。依我看,这类程序应该先用笔和纸来解决。然后代码就会清晰明了。步骤2:检查数字是否为十进制回文的任务最容易被看作是一个两步过程:首先,将数字转换为字符串。然后检查字符串是否对称。请注意,只检查数字字符串的一半就足够了,并将其与反向的另一半进行比较,否则会检查两次。mvw-我只是在尝试另一种方法。。利奥-我的错…我用过纸和笔,现在拿到了!!谢谢