#4109:


fallangel (墮)

學校 : 國立屏東大學
編號 : 12862
來源 : [182.234.246.45]
最後登入時間 :
2015-02-27 01:48:06
a005. Eva 的回家作業 -- POJ | From: [61.218.64.31] | 發表日期 : 2010-08-18 09:52

#include<iostream>
#include<cstdlib>
using namespace std;
int main(void)
{
    int t;
    int a,b,c,d,i;
    cin>>t;
    for(i=0;i<t;i++)
    while(cin>>a,cin>>b,cin>>c,cin>>d)
    {
      if(b-a==d-c==c-b)
        cout <<a<<" "<<b<<" "<<c<<" "<<d<<" "<<d+b-a<<endl;
      else
        cout <<a<<" "<<b<<" "<<c<<" "<<d<<" "<<d*b/a<<endl;    
    }
}

與正確輸出不相符(line:4)
您的答案為: 2 4 6 8 16
正確答案為: 2 4 6 8 10

 

但若把if那改成 if(b-a==d-c) 就能正確

請問是差在哪裡?? 為什麼改成那樣就能通過??

 
#4128: Re:差別?


vbdcnj07 (00)

學校 : 國立中央大學
編號 : 12796
來源 : [140.115.213.250]
最後登入時間 :
2011-12-14 23:03:53
a005. Eva 的回家作業 -- POJ | From: [114.26.51.46] | 發表日期 : 2010-08-19 21:42

但若把if那改成 if(b-a==d-c) 就能正確

請問是差在哪裡?? 為什麼改成那樣就能通過??

 

  if(b-a==d-c==c-b)

相當於

  if((b-a==d-c)==c-b)

會先判斷b-a==d-c,若成立回傳1(true),不成立回傳0(false)

所以就會變成 

if(1==c-b)   or   if(0==c-b)   兩種情況

所以根據你的意思應寫成  if(b-a==d-c&&d-c==c-b)

有錯請指正!!!

 

 
ZeroJudge Forum