gpt4 book ai didi

java - 如何修复这个 Java 回文算法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:49:28 26 4
gpt4 key购买 nike

MrSmith42 建议的解决方案:p for 循环中的错误。修复它更正了它。

我尝试为 ProjectEuler.net 文件的第四题编写代码。需要找到最大的回文数,它是两个 3 位数的乘积。

我知道这段代码不是最有效的。首先,它高达 999,999。当最大值不应超过 999*999 = 998,001 时。我只想解决这个问题。但是我不知道我是否可以使用 Strings 或 String Tokenizer 来解决这个问题。

public class Main {
public static void main(String[] args) {
List<Integer> arr = new ArrayList<>();
int a = 100000, b = 10000, c =1000, d = 100, e = 10, f = 1;
int m, n, p, q, s, t;
//The plan is to increment the numbers by one, starting from 100,000 upto 999,999.
for (m = 1; m <= 9; m++) {
for (n = 0; n <= 9; n++) {
for (p = 0; n <= 9; n++) {
for (q = 0; q <= 9; q++) {
for (s = 0; s <= 9; s++) {
for (t = 0; t <= 9; t++) {
if (t*a + s*b + q*c + p*d + n*e + m*f == m*a + n*b + p*c + q*d + s*e + t*f) {
arr.add(m*a + n*b + p*c + q*d + s*e + f*t); }}}}}
}
}
for (int x: arr)
System.out.println(x);
}
}

我正在获取格式为 ST00TS 的数字。所以,并不是所有的回文都被涵盖了。我不知道我哪里搞砸了。

最佳答案

循环头中存在复制和粘贴错误:

for (p = 0; p <= 9; p++) {  // not  (p = 0; n <= 9; n++)

关于java - 如何修复这个 Java 回文算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57774542/

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