首先请看我提交的两次代码 。
这两次提交的代码几乎没有区别。
提交第二次的原因是由于我极为愚蠢的输出处理导致有一类情况没有考虑到。由于这个问题太过愚蠢所以我在提交的时候就后悔了,所以立刻在自己的原件上作了修改,但等到再次提交的时候,我忽然发现我第一次的错误竟然不是“答案错误”而是“格式错误”。
于是我意识到可能存在一类测试情况没有被纳入到测试点中——“a*x^b”。
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
StringTokenizer stringTokenizer=new StringTokenizer(sc.nextLine());
int[] vessel = new int[stringTokenizer.countTokens()];
int i = 0;
while(stringTokenizer.hasMoreTokens()){
vessel[i] = Integer.parseInt(stringTokenizer.nextToken());
i++;
}
int[] result = new int[vessel.length];
for (int j = 0;j < vessel.length;j++){
if(j % 2 != 0) result[j] = vessel[j] - 1;
else result[j] = vessel[j] * vessel[j + 1];
if (j == vessel.length - 1 && result[j] == -1){
result[j - 1] = 0;
result[j] = 0;
}
}
if (result.length > 2){
for (int j = 0;j < result.length;j++){
if (j == result.length - 2 && result[j] == 0) {
System.out.print(result[j -1]);
break;
}
else if (j == result.length - 1) System.out.print(result[j]);
else if (j < result.length - 3)System.out.print(result[j] + " ");
else if (j == result.length - 2) System.out.println(result[j - 1] + " " + result[j] + " ");
}
}//我在这个地方做了改动,为了加入对形如x^2类的函数单独做出的判断。
else if (result[result.length - 2] != 0){
System.out.print(result[0] + " " + result[1]);
}//改动到此为止。
else System.out.println("0 0");
}
}
而提交之后得到的两次结果更证实了这一点。
这两次结果一模一样都在测试点1出现一样的错误 因此有理由怀疑题目在设置测试点的时候忽略了这种情况导致我的程序差点蒙混过关(虽然还是因为别的理由没过。。。)
PS:这是我第一次写文章轻喷