gpt4 book ai didi

java - 检查两个三位数是否有任何在 Java 中相同的数字

转载 作者:行者123 更新时间:2023-12-04 09:18:46 27 4
gpt4 key购买 nike

我正在尝试用 Java 编写一个程序,以检查其中一个数字的至少一位是否与另一个数字的一​​位相匹配。例如,如果两个数字是 238 和 345,它应该返回某个字符串。到目前为止,这是我所拥有的,但它仅适用于最右边的数字:

if ((computerGuess/10) == (userGuess/10) || (computerGuess%10) == (userGuess%10) || (computerGuess%10) == (userGuess/10) || (userGuess%10) == (computerGuess/10)) {
System.out.println("You have won S1000");
break;
}

最佳答案

一个干净的解决方案是将每个数字转换为一组数字,然后检查重叠:

public Set<Integer> getDigits (int input) {
Set<Integer> digits = new HashSet<>();
while (input > 0) {
digits.add(input % 10);
input /= 10;
}

return digits;
}

int computerGuess = 238;
int userGuess = 345;
Set<Integer> computerDigits = getDigits(computerGuess);
Set<Integer> userDigits = getDigits(userGuess);
computerDigits.retainAll(userDigits);

if (computerDigits.size() > 0) {
System.out.println("There is an overlap: " + computerDigits.toString());
}

关于java - 检查两个三位数是否有任何在 Java 中相同的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63134276/

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