当前位置: 首页 > 知识库问答 >
问题:

检查给定范围之间的数字是否为回文的Java程序

仇航
2023-03-14

所以我正在尝试编写这个java程序,它将检查并显示0到10000之间的所有回文数字。方法isPalindrome必须接受int数,如果number是回文,则返回一个布尔值true,如果number不是回文,则返回一个false。

这是到目前为止的代码,但当我运行它时,它只打印一行1,我在最后添加的打印是为了调试和检查该方法是否工作,但在这种情况下它不工作。我还将numCount初始化为1,因为当num必须大于0时,我不知道如何使方法工作。将numCount初始化为0将使程序跳过整个num>0部分。

null

import javax.swing.*;
import java.text.*;

public class PalindromeCheck 
{

    public static void main(String [] args)
    { 
        //variables 
        int numCount = 1;
        final int END = 10000;
        boolean palindrome; 

        //methods
        palindrome = isPalindrome(numCount, END);

    }//end main 
    public static boolean isPalindrome(int numCount, int END)
    { 

        //local variables 
        int num, num2 = numCount, remainder, reverseNum;
        boolean palindrome;
        palindrome = false;


        while (numCount <= END)
        {

            num = numCount;
            remainder = 0;
            reverseNum = 0;

                while (num > 0)
                {


                    remainder = num % 10;
                    num = num / 10;
                    reverseNum = (reverseNum * 10) + remainder;

                    if (reverseNum == num2)
                    {   
                        palindrome = true;
                    }
                    else 
                    {
                        palindrome = false;
                    }

                        if(palindrome == true)
                        {
                            System.out.print("  " + reverseNum);
                        }



                 }//end Minor Loop

            numCount++;

        }//end of Major Loop

        return palindrome;
    }//end of method isPalindrome

}//end of class

共有1个答案

东郭思远
2023-03-14

您可以使用此方法查找回文,而不使用StringBuilder

 public boolean isPalindrome(int number){ 
   //number=12321
   int num = number;
   //reversing number
   int reverse=0,rmd; 
   while(number > 0) 
   { 
     rmd = number % 10; 
     reverse = reverse * 10 + rmd; 
     number = number / 10; 
   } 
   if(reverse == num) 
     //true
   else
     //false
 }
 类似资料:
  • 检查给定的数字是否在给定范围内。 使用算术比较来检查给定的数字是否在指定的范围内。如果没有指定第三个参数 end ,则范围被认为是从 0 到 start 。 const inRange = (n, start, end = null) => { if (end && start > end) end = [start, (start = end)][0]; return end == nu

  • 所以我必须写一个程序,找到给定范围之间的所有回文数。程序必须使用numDigits()方法,该方法接受int数并返回该int的位数。 一个isPalindrome()方法,它将接受一个int数字,并返回一个布尔值true或false,无论该数字是否回文 我在这里编码了一个numDigit()方法: 我知道如何用另一种方法找到回文,但作业是专门针对这种技术的。我如何实现这个numDigit()方法来

  • 问题内容: 我需要检查当前时间是否在8 AM和3 PM之间。如果在这些时间范围之间,那么我需要返回yes,否则返回false。 但是我不确定我应该在这里使用吗?我可以不使用时间戳并相应地检查时间戳吗?什么是正确的方法? 我仍在使用Java 7。 问题答案: 如果您使用的是Java 8之前的Java版本,请查看Joda的API文档。 具体来说,有一个AbstractInterval#contains

  • 我试图写一个方法来检查一个给定的单词是否是回文,但到现在为止它还不能工作。我怀疑错误出在if语句中,而且您没有将对象(如字符串)与==进行比较,而是与equals进行比较,对吗?但是Java不允许我写:if(firstthalf.charat(i).equals(secondhalf.charat(j))),那么我该怎么做才能使它工作呢?代码中还有其他错误吗? null null 提前道谢! /尼

  • 本文向大家介绍用于检查给定字符串是否为Heterogram的Java程序,包括了用于检查给定字符串是否为Heterogram的Java程序的使用技巧和注意事项,需要的朋友参考一下 如果一个字母中的字母不只出现一次,则该字符串为Heterogram。一个例子如下: 此字符串是一个Heterogram,因为字符串中的每个字母仅出现一次。 演示该程序的程序如下。 示例 输出结果 现在让我们了解上面的程序

  • 问题内容: 如果有和,如何检查用户给出的日期是否在该范围内? 例如 目前日期是字符串,将它们转换为时间戳整数是否有帮助? 问题答案: 使用strtotime将它们转换为时间戳是正确的方法,例如