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

为什么这个程序为回文提供了错误的输出?[副本]

东方旭东
2023-03-14

我正在为两个3位数的乘积生成的最大回文编制程序。但程序给出的结果是999*999=998001有人能说出这个代码中的错误吗?

程序-

public class abc {
    public static void main(String[] args) 
    {
        int p=0,temp=0;

        for(int i=100;i<=999;i++)
        {
            for(int j=100;j<=999;j++)
            {
                p=i*j;
                StringBuilder sb=new StringBuilder(Integer.toString(p));

                sb.reverse();
                if((sb.toString()).equals(Integer.toString(p))  && p>temp)
                {
                    temp=p;
                }
            }
        }       
        System.out.println(temp);
    }
}

共有1个答案

劳亦
2023-03-14

您有一个额外的

if((sb.toString()).equals(Integer.toString(p))  && p>temp);
                                                          ^

它结束if语句,因此下面的块将使用temp=p

去掉它,你会得到

906609

 类似资料:
  • 我们有一个提供程序测试,只是在Jenkins上失败了,这阻止了我的调试。 (有些省略……) 交互在pact文件中如下所示: 我的印象是名称应该匹配type而不是确切的值,而且在diff中似乎有一个“name”字段。

  • 我正在尝试用Java制作一个与OpenGL(使用LWJGL 2)的窗口。当我尝试运行时,Eclipse BuiltInclassLoader出现了ClassNotFoundException错误。 我期望输出显示一个窗口,这是真正的输出: 线程“main”java.lang.noClassDeffounder中的异常错误:org/lwjgl/lwjglexception在enginetester.

  • 我需要帮助我的错误就像 代码:

  • 我花了三天的时间来寻找答案,看视频和论坛帖子,但没有运气。请看这四张照片。它似乎只在问题有图像文件时才这样做。

  • 我想知道为什么下面的代码: 我被要求详细解释,但我不明白为什么输出是这样的。请有人帮帮我。

  • 它将把牌阵的一半分配给玩家和计算机(玩家得到前半部分,计算机得到后半部分)。现在这是先洗牌,所以是的,这似乎是公平的。 我得到的出界错误是这一行: