我输了,所以
public class Filter {
public static void main(String[] args) {
// read in two command-line arguments
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
// repeat as long as there's more input to read in
while (!StdIn.isEmpty()) {
// read in the next integer
int t = StdIn.readInt();
if (????) {
StdOut.print(t + " ");
}
}
StdOut.println();
} }
该程序应该以两个整数读取并使用它们来过滤掉StdIn。流,例如,如果参数是2,3和StdIn 5 7 8 9 10 4 6,那么它应打印出8 9 10,(跳过前2并打印下3)
答案 0 :(得分:4)
为什么不添加一个计数器来知道你在哪个号码?
int i = 0;
while (!StdIn.isEmpty()) {
i++;
// read in the next integer
int t = StdIn.readInt();
if ( i > a && i <= a + b) {
StdOut.print(t + " ");
}
}
答案 1 :(得分:0)
public class Filter {
public static void main(String[] args) {
// read in two command-line arguments
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
// repeat as long as there's more input to read in
while (!StdIn.isEmpty()) {
// read in the next integer
int t = StdIn.readInt();
if(a-- > 0)
continue;
if (b-- > 0) {
StdOut.print(t + " ");
}
}
StdOut.println();
} }
答案 2 :(得分:-1)
?????
需要--a <= 0 && --b >= 0
。
请注意,我正在利用&&
被短路的事实。即--b
为0或更低,才会评估--a
。
当然,最终int
会在很长时间内输入蒸汽会话,但这仍然是一个非常酷的解决方案。