java - Project Euler 4 - 不会打印结果

标签 java

问题来了

"A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 × 99.
Find the largest palindrome made from the product of two 3-digit numbers."

我不确定为什么我的代码不起作用。我推断,如果我从最大的数开始并每次减少 X,那么我找到的第一个回文数就是它。但由于某种原因它没有打印。非常感谢任何帮助!

import java.lang.StringBuilder;

public class Euler4 {

  public static void main(String[] args){ 
    for (int x=999*999; x>=100*100; x--){
      String num=Integer.toString(x);
      StringBuilder num1 = new StringBuilder(num);
      String num2 = num1.toString();
      if (num2.equals(num1.reverse())==true)
      System.out.println(num);
      break;
  }
  }
}

最佳答案

你的循环只循环一次,因为你有 break; 。添加大括号以防止将来发生此类事情:

if (num2.equals(num1.reverse().toString())) {
      System.out.println(num);
      break;
}

还要注意,写 if(someBoolean == true) 是多余的,只需写if(someBoolean)防止错误分配( = 而不是 == )。请..缩进您的代码!

说实话,当我查看你的代码时,我并没有注意到这一点,但我使用了调试器,并在不到 5 秒的时间内发现了问题。有一个调试器..使用它!

关于java - Project Euler 4 - 不会打印结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19676220/

相关文章:

java - 如何在Java中使用log4j更新修改的日期和时间?

java - java中char数组的使用

java - Eclipse 如何知道 com.sun 是受限 API?

java - 当你在 Java 中有一个像 access$002 这样的变量时,这意味着什么?

Java - 提示时未能收集字符串

java - 不使用 while(true) 从文件反序列化多个对象

java - 在浏览器中打开字符串android

java - 如何使用 CriteriaQuery 查询具有枚举作为值的 JPA ElementCollection 映射中的键?

java - 如何使用 CSV 文件作为 Java 数据库?

java - 如何从 java.sql.ResultSet 获取列名称列表