【发布时间】:2020-05-28 08:42:00
【问题描述】:
我正在学习我的大学提供的一门课程,并在其中一个代码挑战中遇到问题。
问题是: 编写 Java 代码以打印所有大小为 3 的子集。
示例输入:
arr_size = 5
arr[] = {1, 7, 3, 4, 9}
样本输出:
(1, 7, 3) (1, 7, 4) (1, 7, 9) (1, 3, 4) (1, 3, 9) (1, 4, 9)
(7, 3, 4) (7, 3, 9) (7, 4, 9)
(3, 4, 9)
我为此编写的代码:
import java.util.Scanner;
class Main{
public static void main(String args[]) {
// Type your code here
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int a[] = new int[n];
for(int i=0; i<n;i++)
a[i] = in.nextInt();
for(int i=0;i<n;i++)
{
for(int j=i+1;j<n;j++)
{
for(int k = j+1; k<n; k++)
{
System.out.print("(" + a[i] + ", " + a[j] + ", " + a[k] + ") ");
}
}
if(i<2)
System.out.print("\n");
}
}
}
我的输出与预期的输出匹配,但网站显示错误。我不知道我哪里错了。谁能帮帮我??
这是我的输出和预期输出的屏幕截图:
【问题讨论】:
-
'我的输出匹配'-'但显示错误'可以解释吗?
-
@azro 如果这类似于 HackerRank 问题,那么 OP 可能已经生成了正确的输出,但 HR 仍然被拒绝,因为它使用了三个嵌套循环的蛮力方法(无法扩展非常适合任意大小的集合)。
-
您是否向右滚动了输出框?未完全显示
-
我看不到输出,但你真的使用
( ... )而不是{ ... }用于sets? -
也许,只是预期输出中不存在的尾随空格导致检查失败?如果您不打印该行的最后一个元素,请尝试仅打印最后一个空格。