开发者社区> 问答> 正文

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

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

公共班级主要

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”,以查看输出是否与输入匹配。我也不了解数组或任何数学知识。因此,我正在寻找基本的帮助。感谢您帮助我解决我公认的可悲问题。

问题来源:Stack Overflow

展开
收起
montos 2020-03-23 14:26:38 480 0
1 条回答
写回答
取消 提交回答
  • 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)进行比较,只需将原始值存储在一些临时变量中,例如num。

    回答来源:Stack Overflow

    2020-03-23 14:27:12
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载