gpt4 book ai didi

java - Arrays.asList(outer array).containsAll(Arrays.asList(inner array)) 在不应该的时候返回 false

转载 作者:行者123 更新时间:2023-11-29 07:34:13 25 4
gpt4 key购买 nike

<分区>

我目前正在尝试解决 Problem 38 of Project Euler虽然我显然尝试自己解决所有问题,但我似乎遇到了障碍,我想我需要你的帮助。

这是我的代码:

import java.util.Arrays;

public class PandigitalMultiples{
public static void main(String[]args){
long c = 0;
long pdLong = 0;
for(int i = 1; i < 10000; i ++){
String pdString = "";
for(int n = 1; pdString.length() <= 9; n++){
long p = n * i;
String pString = String.valueOf(p);
pdString = pdString + pString;
pdLong = Long.parseLong(pdString);
if(is1To9Pandigital(pdString) && pdLong > c && pdLong < 1000000000 && n > 1){
c = pdLong;
}
}
}
System.out.println(c);
}
public static boolean is1To9Pandigital (String pNumber){
int length = pNumber.length();
if(length != 9){
return false;
}
char[]chars = pNumber.toCharArray();
int[]digits = new int[chars.length];
for(int i = 0; i < chars.length; i++){
digits[i] = chars[i] - '0';
}
int[]allDigits = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9};
boolean contains = Arrays.asList(digits).containsAll(Arrays.asList(allDigits));
if(contains == true){
System.out.println(pNumber);
return true;
}
else
return false;
}
}

问题似乎是,即使对于像 918273645 这样的数字,Arrays.asList(digits).containsAll(Arrays.asList(allDigits)) 也会返回 false,我不知道为什么!

也许你们中有人可以帮助我?我真的很感激!

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