波兰马图拉错误答案?

时间:2015-02-02 10:14:13

标签: java algorithm

在任务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

1 个答案:

答案 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。