gpt4 book ai didi

java - 回文数的两种读法都是一样的。找到由两个 3 位数乘积组成的最大回文数

转载 作者:行者123 更新时间:2023-11-30 06:26:06 25 4
gpt4 key购买 nike

这是我对 ProjectEuler 问题 4 的解决方案“回文数在两种情况下读起来都是一样的。由两个 2 位数字的乘积组成的最大回文数是 9009 = 91 × 99。”找到由两个 3 位数的乘积组成的最大回文数。

当我运行这个程序时,它不会在控制台中显示任何内容,我不确定为什么,因为我没有发现我的代码有问题。

public class Problem4 
{
static boolean end = false;
public static void main(String[] args)
{
int multiplier = 999;
int product = 0;
while(end = false )
{
product = multiplier * 999;
isPalindrome(product);
multiplier--;
}
}
public static Boolean isPalindrome(int number)
{
int b = (Integer.valueOf(number).toString().length() - 1);
char[] storage = new char[Integer.valueOf(number).toString().length()];
char[] reverse = new char[Integer.valueOf(number).toString().length()];
for(int i = 0; i < Integer.valueOf(number).toString().length(); i++)
{
storage[i] = (Integer.valueOf(number).toString().charAt(i));
}
for(int a = 0; a < Integer.valueOf(number).toString().length(); a++)
{
reverse[a] = storage[b];
b--;
}
String compare = "";
for(int x = 0; x < Integer.valueOf(number).toString().length(); x++)
{
compare += reverse[x];
}
if (compare.equals(Integer.valueOf(number).toString()))
{
System.out.println(number);
end = true;
return true;
}
return false;
}
}

最佳答案

你的问题很简单:

while (end = false)

应该符合您的意图:

while (end == false) 甚至更好 while (!end)

否则,这意味着您将 false 分配给 end,然后评估 end,它始终为 false

作为引用,以后我建议您尝试使用调试器来处理此类情况。

关于java - 回文数的两种读法都是一样的。找到由两个 3 位数乘积组成的最大回文数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47181389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com