我需要一些帮助。我是java的新手,这是我的任务:
我必须编写包含整数数组的代码。一对数组值必须为=42
。然后我必须通过正常System.out.println
输出该对。
这是我到目前为止的代码。也许我甚至完全错了。
我的问题是让程序正确输出=42
对的对象。
public class Main {
public static void main(String[] args) {
int[] array = { 2, 3, 5, 6, 8, 6, 5, 39, 40, 34 };
for (int i = 0; i < array.length; i++) {
for (int k = 0; k < array.length; k++)
if (array[i] + array[k] == 42)
System.out.println("Found pairs at");
}
}
}
答案 0 :(得分:2)
Properties props = System.getProperties();
Map<String, String> systemMap = includes.stream()
.filter(props::containsKey)
.sorted()
.collect(Collectors.toMap(s -> s, props::getProperty,
(e1, e2) -> e2,
LinkedHashMap::new)
);
输出:
public static void main (String[] args) throws java.lang.Exception
{
int[] array = {2,3,5,6,8,6,5,39,40,34};
for (int i=0; i<array.length; i++){
for (int k=0; k<array.length; k++)
if (i != k && array[i] + array[k] == 42)
System.out.println("Found pairs at " + i + " and " + k + ".");
}
}
直播demo。
修改:我在Found pairs at 0 and 8.
Found pairs at 1 and 7.
Found pairs at 4 and 9.
Found pairs at 7 and 1.
Found pairs at 8 and 0.
Found pairs at 9 and 4.
条件中添加了i!=k
,因为您要在数组中查找两个总和为42的数字。因此,如果数字为{{ 1}}出现在输入数组中,由于您正在检查if
,您的程序会在21
时为您提供两次索引21
。
答案 1 :(得分:1)
你几乎就在那里:)只需使用+
运算符即可构建输出字符串:
public class Main {
public static void main(String[] args) {
int[] array = {2,3,5,6,8,6,5,39,40,34};
for (int i=0; i< array.length ; i++) {
for (int k=0; k< array.length; k++) {
if (array[i] + array[k] == 42)
System.out.println("Found pairs at " + i + " " + k + ": " + array[i] + " and " + array[k] + " equals 42");
}
}
}
}
或者,您可以使用格式化功能,这可能更容易阅读:
System.out.format("Found pairs at %d %d : %d and %d equals 42", i, k, array[i], array[k]);