close
內容
在一個神奇的國度裡,有一種兔子,它只吃蘿蔔,且每天只吃一個,蘿蔔有四種顏色,分別為:紅蘿蔔,白蘿蔔,黃蘿蔔,發霉的蘿蔔(黑色),兔子吃了蘿蔔之後,體重會有不同的變化,紅蘿蔔吃了胖xg,白蘿蔔吃了胖yg,黃蘿蔔吃了瘦zg(醃黃蘿蔔真難吃...),發霉的蘿蔔吃了瘦wg(附加狀態:中毒...),現在給你x,y,z,w問你幾天後,兔子的體重!
p.s.中毒會使兔子每天瘦ng(中毒當天不算),且中毒狀態可累加,m是兔子初始的體重。早上先中毒,晚上才吃東西。
上面的敘述很重要,要仔細看!
輸入說明
第一行是測資的筆數,每筆測資第一行是x,y,z,w,n,m,第二行是一串數字,1代表紅蘿蔔,2代表白蘿蔔,3代表黃蘿蔔,4代表黑蘿蔔,0代表沒吃。這一行中的數字為兔子這段時間內所吃的食物。
輸出說明
請輸出兔子在那段時間後所剩的體重,如果體重有在任意時刻少於等於0請輸出:"bye~Rabbit"(不含引號),不然請印出結束時的體重。(詳情參照範例輸入輸出)
有可能問你第一天的體重歐!(就是問初始體重,也就是那行根本沒輸入)
例如如:
13 312 43 432 567
//空一行
輸出為:567
C++
//根據小提示 //修改while裡面的程式來完成 #include <iostream> #include <sstream> #include <string> using namespace std; int main() { int in1; stringstream stream;//建立一個字串串流 string istr1;//建立一個字串 while(cin>>in1)//輸入有幾組測資 { int x,y,z,w,n,m; while(in1--) { cin>>x>>y>>z>>w>>n>>m;//輸入資料 getline(cin,istr1);//因為getline接在cin後面會出問題所以要用兩次 getline(cin,istr1); stream.clear();//清空 stream.str("");//清空 if(istr1=="")//輸入沒東西就直接輸出體重 { cout<<m<<"g"<<endl; } else { stream<<istr1; bool life=true;//判斷兔子有無活著 int cn1,poison=0; while(stream>>cn1)//cn1是蘿蔔的數字 每輸入一次就判斷兔子死了沒 { m=m-n*poison;//早上先毒發一次 毒會疊加 if(m<=0)//判斷有沒有毒發身亡 { life=false; break; } //判斷吃了何種蘿蔔 if(cn1==1) { m+=x; } else if(cn1==2) { m+=y; } else if(cn1==3) { m-=z; if(m<=0)//判斷有沒有瘦死 { life=false; break; } } else if(cn1==4) { m-=w; if(m<=0) { life=false; break; } poison++;//毒素疊加 } } //輸出 if(life) { cout<<m<<"g"<<endl; } else { cout<<"bye~Rabbit"<<endl; } } } } return 0; }
全站熱搜
留言列表