在任务5.1中来自IT的波兰语matura中,我们必须计算在文件中增加最大3的子序列,其中310行使用int值,系列是所有穿孔值小于下一个。
在答案中,我们计算的增加的子序列大于3是14,但我总是得到11,我不知道为什么。
有人可以告诉我出了什么问题?
我的代码:
static int Series = 0;
static int Big = 0;
public static void main(String[] args){
Scanner In = new Scanner(System.in);
String Line = "Seria 1: ";
int Last = 0;
int i = 0;
while(In.hasNext()){
int Current = In.nextInt();
if(Last<Current){
Series++;
Line +=Current+" ";
}
else{
if(Series>=3){
Big++;
System.out.println(Line+"#");
Line="Seria "+(Big+1)+": ";
}
Series = 0;
}
Last = Current;
}
System.out.println(Big);
In.close();
}
有一个包含记录的文件:http://wklej.to/phpgW
答案 0 :(得分:0)
好的,据我所知,你的程序正常运行并返回你的期望。问题可能是措辞。 “增加子序列的数量&gt; = 3”实际上可以指两种不同的接近它的方式:
首先是你的方式,序列的结束就在增加停止之前。你得到像{3,4,5} {9,12,45,23049,2123455}这样的序列。
第二个是比较棘手的 - 如果你有三个数字在递增的序列中,那么增量是否继续并不重要。在该解释中,输入3,4,5,6,7导致{3,4,5} {4,5,6} {5,6,7},甚至可能导致{3,4,5,6} { 4,5,6,7}和{3,4,5,6,7}。
这是纯粹的推测,但如果他们要求序列长度= 3的第二种解释(希望以非模棱两可的方式),它将非常适合。比你的输入确实会返回14。