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


master11360 (阿簡)

學校 : 臺北市立成功高級中學
編號 : 13637
來源 : [122.116.162.37]
最後登入時間 :
2014-03-07 03:00:34
a005. Eva 的回家作業 -- POJ | From: [219.87.82.195] | 發表日期 : 2012-03-07 15:35

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 (睡三)

學校 : 不指定學校
編號 : 26519
來源 : [61.31.133.244]
最後登入時間 :
2014-09-07 18:24:46
a005. Eva 的回家作業 -- POJ | From: [219.81.144.71] | 發表日期 : 2012-08-05 21:32

輸入

如果輸入

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然後修正除法問題

 
ZeroJudge Forum