Java 为什么不是';if语句不起作用吗?

Java 为什么不是';if语句不起作用吗?,java,boolean,conditional-statements,palindrome,Java,Boolean,Conditional Statements,Palindrome,我试图用Java解决Euler项目的一个问题。问题4 它说我必须找到由两个3位数的乘积组成的最大回文 下面是代码(只是不起作用的部分): 公共类问题4pe{ 公共静态void main(字符串[]args){ int结果=0; 整数输出=0; 对于(int i=100;i

我试图用Java解决Euler项目的一个问题。问题4

它说我必须找到由两个3位数的乘积组成的最大回文

下面是代码(只是不起作用的部分):

公共类问题4pe{
公共静态void main(字符串[]args){
int结果=0;
整数输出=0;
对于(int i=100;i<1000;i++){
对于(int j=100;j<1000;j++){
输出=i*j;
String strout=output.toString();
StringBuilder stb=新的StringBuilder();
char[]chrout=strout.toCharArray();
对于(int x=0;x-1;k--){
stres.append(chrout[k]);
}
字符串stbb=stb.toString();
字符串字符串=stres.toString();
布尔布尔布尔=stbb.equals(字符串);
如果(bool){
结果=输出;
}
}
}
系统输出打印项次(结果);
}
}
所以以上的结果是:580085
但当我提交它时,它显示不正确。我不明白为什么。那么你能告诉我问题是在代码中,还是我在理解这个问题时出错了

您的代码跳过了最大的产品


result
不能保证在
for
循环的两次迭代之间增加,因此
result
的最终值不是最大的。

您的代码跳过了最大的产品

result
不能保证在
for
循环的两次迭代之间增加,因此
result
的最终值不是最大的。

试试这个

if (bool && output > result) { // a second if condition.
  result = output;
}
它给了我正确的答案。

试试这个

if (bool && output > result) { // a second if condition.
  result = output;
}

它给了我正确的答案。

您可以做更多的工作来减少测试用例并找出失败的地方。这里有一个很大的提示:添加一行,在
bool
为真时随时打印
output
。(将程序的输出重定向到一个文件,因为它可能非常大。)我打赌如果你这样做并查看结果,您将了解它不起作用的原因。您可以做更多的工作来减少测试用例并找出它失败的地方。这里有一个很大的提示:添加一行,在
bool
为真时随时打印
output
。(将程序的输出重定向到一个文件,因为它可能非常大。)我敢打赌,如果你这样做并查看结果,你会发现它不起作用的原因。@user202574如果你的问题解决了,你应该。@user202574如果你的问题解决了,你应该。