从1到N,打印出所有和大于50的数对
From 1 to N, print all the pairs of number that has sum larger than 50
我是 Java 的新手,我有这样的练习。从 1 到 N,打印出所有和大于 50 的数字对。
例如,如果 N = 60,则结果将类似于 (1,50);(1,51);...;(1,60);...;(2,49);(2,50 );...;(2,60);....;(58,59);(58,60);(59,60)。我正在考虑一些嵌套的 while 循环,其中 运行 从 1 到 N 和 b 运行 从 N 到 1,那么条件是 a+b>50。我认为如果 a+b<50 会更容易,因为我可以设置 b = 50-a 或类似的东西。我现在仍然很困惑。
看看:
public static void main(String[] args) {
int N = 60;
for (int i=1; i<=N; i++) { //1st loop
for (int j=i+1; j<=N; j++) { //2nd loop
if (i+j > 50) {
System.out.printf("(%d, %d);", i, j);
}
}
System.out.println();
}
}
解释:
第一个循环 (index i
) 遍历允许范围 N
中的所有数字。第二个循环 (index j
) 将遍历上述范围内大于 i
的所有其他数字。我们只取更大的数字,所以我们不会两次检查同一对。最后只打印符合条件(大于 50)的对。
旁注:我恳请您提高“谷歌搜索”技能。知道如何在线搜索信息是一个 essential skill. By a search and a quick read, you could find links 虽然不能直接解决您的问题,但确实可以让您朝着正确的方向迈出一步。
编辑: 值得注意的是,我不确定这段代码是否按照您想要的方式打印对。它也不考虑成对的相同数字(例如 (26, 26)
)。我不清楚您是否对这些情况感兴趣。
我是 Java 的新手,我有这样的练习。从 1 到 N,打印出所有和大于 50 的数字对。 例如,如果 N = 60,则结果将类似于 (1,50);(1,51);...;(1,60);...;(2,49);(2,50 );...;(2,60);....;(58,59);(58,60);(59,60)。我正在考虑一些嵌套的 while 循环,其中 运行 从 1 到 N 和 b 运行 从 N 到 1,那么条件是 a+b>50。我认为如果 a+b<50 会更容易,因为我可以设置 b = 50-a 或类似的东西。我现在仍然很困惑。
看看:
public static void main(String[] args) {
int N = 60;
for (int i=1; i<=N; i++) { //1st loop
for (int j=i+1; j<=N; j++) { //2nd loop
if (i+j > 50) {
System.out.printf("(%d, %d);", i, j);
}
}
System.out.println();
}
}
解释:
第一个循环 (index i
) 遍历允许范围 N
中的所有数字。第二个循环 (index j
) 将遍历上述范围内大于 i
的所有其他数字。我们只取更大的数字,所以我们不会两次检查同一对。最后只打印符合条件(大于 50)的对。
旁注:我恳请您提高“谷歌搜索”技能。知道如何在线搜索信息是一个 essential skill. By a search and a quick read, you could find links 虽然不能直接解决您的问题,但确实可以让您朝着正确的方向迈出一步。
编辑: 值得注意的是,我不确定这段代码是否按照您想要的方式打印对。它也不考虑成对的相同数字(例如 (26, 26)
)。我不清楚您是否对这些情况感兴趣。