用于识别回文数的Java项目返回假并具有匹配的输出

问题描述 投票:0回答:1

我距离学习编程已经三周了,这是我第一次出现堆栈溢出。我在一个课程项目中遇到了一个问题。我的意思是取一个数字,如果它是回文,则返回true。看来,如果我输入的数字是偶数个数字,则while循环会正确地将该数字标识为回文数。如果我插入的数字的位数为奇数,则循环会吐出一个与输入匹配的数字,但该方法返回false。我四处走动,尝试更改while循环的要求,结果有所不同,但无法解决此问题。我可以访问其他学生完成的代码来更改我的代码并完成项目,但我想了解我不理解的内容。

public class Main {

public static void main ( String [] args ) {
    System.out.println ( isPalindrome ( 111 ) ) ;
}

public static boolean isPalindrome ( int number ) {

    int lastDigit = 0 ;
    int reverseNumber = 0 ;

    while ( number != 0 ) {
        lastDigit = ( number % 10 ) ;
        reverseNumber = reverseNumber * 10 + lastDigit ;
        number /= 10 ;
        System.out.println ( reverseNumber ) ;
        if ( reverseNumber == number ) {
            return true ;
        }
    }
    return false ;
}

}

我正在打印变量“ reverseNumber”,以查看输出是否与输入匹配。我也不了解数组或任何数学知识。因此,我正在寻找基本的帮助。感谢您帮助我解决我公认的可悲问题。

java
1个回答
0
投票
public static void main ( String [] args ) {
    System.out.println ( isPalindrome ( 111 ) ) ;
}

public static boolean isPalindrome ( int number ) {

    int lastDigit = 0 ;
    int reverseNumber = 0 ;
    int num = number;

    while ( num != 0 ) {
        lastDigit = ( num % 10 ) ;
        reverseNumber = reverseNumber * 10 + lastDigit ;
        num /= 10 ;
        System.out.println ( reverseNumber ) ;
        if ( reverseNumber == number ) {
            return true ;
        }
    }
    return false ;
}

您每次都在更改您的数字,最后将其与反转值(111 == 0进行比较,只需将原始值存储在一些临时变量中,可以说数字。

© www.soinside.com 2019 - 2024. All rights reserved.