PAT-乙-1071 1071 小賭怡情 (15 分)
阿新 • • 發佈:2018-11-03
程式碼
#include <iostream> using namespace std; int main() { int T, K; cin>>T>>K; for(int i=0; i<K; i++) { int n1, b, t, n2; cin>>n1>>b>>t>>n2; if(T<t) { cout<<"Not enough tokens. Total = "<<T<<"."<<endl; } else { if( (b==0 && n1>n2) || (b==1 && n1<n2)) { T += t; cout<<"Win "<<t<<"! Total = "<<T<<"."<<endl; } else { T -= t; cout<<"Lose "<<t<<". Total = "<<T<<"."<<endl; } if(T==0){ cout<<"Game Over."<<endl; break; } } } return 0; }
註解
準確分析籌碼不足,Game over,以及輸贏的邏輯順序是關鍵。
在下注後,首先判斷籌碼是否足?不足就輸出籌碼不足,但題意沒有要求退出,因此可繼續下一輪迴圈。否則,就判斷下注是否正確,如正確增加籌碼,不正確減少籌碼。此時該輪結束,判斷是否還剩籌碼,如有,可繼續下一輪,否則遊戲結束。