#6449: 一直寫不出來(java)


master11360 (阿簡)


import java.util.Scanner;
import java.util.*; 
 
public class Test{
   public static void main(String[] args){
      Scanner input=new Scanner(System.in);
      while(input.hasNext()){
         int[] array=new int[4];
         
         String[] s=input.nextLine().split(" ");
         for(int i=0;i<s.length;i++){
             array[i]=Integer.parseInt(s[i]);
         }
         if(s.length==4){
         int[] d=new int[3];
         int[] r=new int[3];
         for(int j=0;j<3;j++){
             d[j]=array[j+1]-array[j];
             r[j]=array[j+1]/array[j];
         }
         if(d[0]==d[1]&&d[1]==d[2]){
         for(int a:array)
             System.out.print(a+" ");
         System.out.println(array[3]+d[0]);
         }
         if(r[0]==r[1]&&r[1]==r[2]){
         for(int a:array)
             System.out.print(a+" ");
         System.out.println(array[3]*r[0]);
          }
         }
       }
    }
}
 
----------------------------------------------
 跑出來結果為WA(line 4)
 說我的答案是1 1 1 1 1 ,正確答案為2 4 6 8 10
 不知道有沒有大大可以幫我看一下~感謝 
#6885: Re:一直寫不出來(java)


popv3207 (睡三)


輸入

如果輸入

5 6 7 8

輸出

5 6 7 8 9
5 6 7 8 8

有兩個輸出

因為

 1. r[j]=array[j+1]/array[j];

    這邊是整數除法 所以會造成 5 6 7 8 之間的比值都是1

 2.還有輸入1 1 1 1

你的兩個if都會成立

你只要把等比的IF改成ELSE 就可以AC了 或是改成else if然後修正除法問題