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

作业编写一个测试程序,提示用户输入一个整数,并报告该整数是否为回文

公孙涵育
2023-03-14

目的:(回文整数)用以下标题编写方法:

//返回整数的反转,即reverse(456)返回654 public static int reverse(int number)

//如果number是回文公共静态布尔IsBalindrome(int number),则返回true

使用reverse方法实现IsPalindrome。如果一个数字的反转与它本身相同,它就是回文。编写一个测试程序,提示用户输入一个整数,并报告该整数是否为回文。

我的代码在下面...我的尝试在下面。我崩溃了,除了来这里我不知道还能做什么。我被代码的布尔部分卡住了,不知道这段代码的其余部分是否正确。我在网上搜索过,看到的例子很少,但没有一个是有意义的。我是一个视觉学习者,所以这些对我来说都没有意义。2个月前开始Java,所以请不要指望我用极其有限的知识生产黄金。我需要帮助--帮助,而不是小气或机智的评论。如果你不想提供帮助,就不要评论。

public class NewClass {

public static int reverse(int number) {

int remainder = 0;

while (number != 0) {

  remainder = number % 10;
  number = number / 10; 
  System.out.print(remainder);
 }

   System.out.println(" is the reverse number.");
   return remainder;
 }
    //I don't really know what to do here.
    public static boolean isPalindrome(int number, int remainder) {
    return number == remainder;
    }
   //Nor do I know what I'm doing here. I'm supposed to make the result from 'reverse' either true or false but I don't know what it write, considering the 'Boolean' portion is unfinished.
   public static void main(String[] args) {
   System.out.print("Enter an integer: ");
   java.util.Scanner input = new java.util.Scanner(System.in);
   int number = input.nextInt();

   reverse(number);
   int remainder = 0;

   if ( remainder == ture)
  }
}

修订:

    public class NewClass {

    public static int reverse(int number) {

    int reverse = 0;

    while (number != 0) {

      reverse = (reverse * 10) + number % 10;
      number = number / 10; 
     System.out.print(reverse);
   }

    System.out.println(" is the reverse number.");
    return (reverse);
  }

     public static boolean isPalindrome(int number) {
        return (number == reverse(number)); //Still being asked to introduce this line. I don't know what that means. My book says nothing and the internets isn't helping.
 }

  public static void main(String[] args) {
    System.out.print("Enter an integer: ");
    java.util.Scanner input = new java.util.Scanner(System.in);
    int number = input.nextInt();

    reverse(number);

        if (number == reverse(number)) {
             System.out.println(number + " is a palindrome");
       }
        else{
            System.out.println(number + " is not a palindrome");        
        }
    }
 }

**结果:运行:

Enter an integer: 121
112121 is the reverse number.
112121 is the reverse number.
121 is a palindrome
BUILD SUCCESSFUL (total time: 2 seconds)**

我的问题是:我不知道我在用这段代码的真和假部分做什么。重点是检查数字,将它与反向的数字进行比较,检查它是否是回文。第二个问题是反向数字与双倍数字重复出现...我不知道我做错了什么,也不知道该如何修复。

查询:

   public static boolean isPalindrome(int number) {
            return (number == reverse(number));
          }

有人请我介绍这句话,但我不知道它是什么意思。这是我唯一的错误。它应该返回真或假,对吗?我该怎么处理它,因为我似乎创建了一个不需要那一行的代码,尽管它是必需的。

共有1个答案

蒋芷阳
2023-03-14

如果您正在讨论如何用reverse来实现ispalindrome,那么它只需要弄清楚数字和它的反向是否相同。

例如,767是回文,因为当颠倒时,它等于原来的。但是,314159不是回文,因为它的反转是一个完全不同的数字951413

这意味着像这样的伪代码就足够了(我包含了reverse,因为当前的实现在关闭时返回的是最后的余数,而不是反向的数字):

def reverse(num):
    rnum = 0
    while num != 0:
        rnum = (rnum * 10) + (num % 10)
        num = num / 10
    return rnum

def isPalindrome(num):
    return (num == reverse(num))

如果你想自己搞定,就别看下面。这是我如何处理这个水平的技能,我提供它只是为了完整。

public class Test {
    public static int reverse (int num) {
        int rnum = 0;
        while (num > 0) {
            rnum = (rnum * 10) + (num % 10);
            num = num / 10;
        }
        return rnum;
    }

    public static boolean isPalindrome (int num) {
        return (num == reverse (num));
    }

    public static void main(String args[])
    {
        System.out.println(isPalindrome (767));       
        System.out.println(isPalindrome (12321));       
        System.out.println(isPalindrome (4));       
        System.out.println(isPalindrome (314159));       
    }
}
 类似资料:
  • 编写一个程序,提示用户输入两个点 (x1,y1) 和 (x2, y2) 并显示它们之间的距离。计算距离的公式为:(x2-x1)^2 (y2-y1)^2 的平方根 这就是我所拥有的: 然而: 我不断得到以下错误: 请帮忙。谢谢

  • 本文向大家介绍写一个方法判断一个数字是否为整数相关面试题,主要包含被问及写一个方法判断一个数字是否为整数时的应答技巧和注意事项,需要的朋友参考一下

  • 问题内容: 这里的基本问题..我将首先要求您不要用任何代码响应,因为那样可能只会使我进一步困惑(对noob编程)。我正在寻找有关如何解决此问题的明确解释。 我有一台扫描仪,可以读取用户的输入。提示用户输入一个介于1到150之间的int值(仅整数)。我得到的值如下: 继续我的程序,一切正常。 不幸的是,代码并不是完全防弹的,因为任何非整数的输入都可能破坏它(字母,符号等)。 我如何使代码更健壮,可以

  • 我正在尝试编写一个程序,允许用户输入一系列整数形式的考试分数。 我希望输出看起来像: 输入整数,或输入 -99 退出:80 输入一个整数,或-99退出:95 输入整数,或-99退出:65 输入整数,或-99退出:-99 最大: 95最小: 65 第二轮: 输入整数,或-99退出:-99 您没有输入任何数字。 我把第一部分记下来了,但是当我输入-99时,我似乎不知道如何得到“你没有输入任何数字”行。

  • 我有一个testNg类,在这个类中,我必须对一组完整的数据运行相同的测试。我可以在@dataprovider中提供每个数据行,但是,每个数据行的结果将显示在报告文件中。就我而言,我必须测试数百万数据。这将导致报告非常混乱。下面是一个示例。 TestData:我的测试数据是一个包含多个JSON行的文件,其中每个JSON对象都应该有一个名称和职业。 我的测试NG类将如下所示: 现在输出报告将包含: 为

  • 以下是错误代码: 有谁能帮我解决我的问题吗?