【简洁代码】1071 小赌怡情 (15分)_22行代码
立志用更少的代碼做更高效的表達
Pat乙級最優化代碼+題解+分析匯總——>傳送門
常言道“小賭怡情”。這是一個很簡單的小游戲:首先由計算機給出第一個整數;然后玩家下注賭第二個整數將會比第一個數大還是小;玩家下注 t 個籌碼后,計算機給出第二個數。若玩家猜對了,則系統獎勵玩家 t 個籌碼;否則扣除玩家 t 個籌碼。
注意:玩家下注的籌碼數不能超過自己帳戶上擁有的籌碼數。當玩家輸光了全部籌碼后,游戲就結束。
輸入格式:
輸入在第一行給出 2 個正整數 T 和 K(≤ 100),分別是系統在初始狀態下贈送給玩家的籌碼數、以及需要處理的游戲次數。隨后 K 行,每行對應一次游戲,順序給出 4 個數字:
n1 b t n2
其中 n1 和 n2 是計算機先后給出的兩個[0, 9]內的整數,保證兩個數字不相等。b 為 0 表示玩家賭小,為 1 表示玩家賭大。t 表示玩家下注的籌碼數,保證在整型范圍內。
輸出格式:
對每一次游戲,根據下列情況對應輸出(其中 t 是玩家下注量,x 是玩家當前持有的籌碼量):
玩家贏,輸出 Win t! Total = x.;
玩家輸,輸出 Lose t. Total = x.;
玩家下注超過持有的籌碼量,輸出 Not enough tokens. Total = x.;
玩家輸光后,輸出 Game Over. 并結束程序。
輸入樣例 1:
100 4
8 0 100 2
3 1 50 1
5 1 200 6
7 0 200 8
輸出樣例 1:
Win 100! Total = 200.
Lose 50. Total = 150.
Not enough tokens. Total = 150.
Not enough tokens. Total = 150.
輸入樣例 2:
100 4
8 0 100 2
3 1 200 1
5 1 200 6
7 0 200 8
輸出樣例 2:
Win 100! Total = 200.
Lose 200. Total = 0.
Game Over.
分析
1、輸入后判斷籌碼夠嗎,如果夠的話是不是贏了。
2、根據判斷結果輸出
3、判斷籌碼是否為0,如是則退出循環。
要注意的是: 無論是贏還是輸,玩家下注籌碼都不能超過自身籌碼
代碼
#include<bits/stdc++.h> 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; //b為賭數, t為籌碼數bool flag = false; //代表是贏還是輸if((b == 0 && n1 > n2) || (b == 1 && n1 < n2)) { flag = true; }//判斷應該輸出什么 if(t > T) printf("Not enough tokens. Total = %d.\n", T);else if(flag == true) {T += t;printf("Win %d! Total = %d.\n",t, T);}else if(flag == false) {T -= t;printf("Lose %d. Total = %d.\n",t, T);}//如果籌碼不夠,結束游戲 if(T == 0) { printf("Game Over.\n"); break; }} return 0; }耗時
每日一句
他日若遂凌云志,敢笑黃巢不丈夫。
總結
以上是生活随笔為你收集整理的【简洁代码】1071 小赌怡情 (15分)_22行代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【最详细解析】1070 结绳 (25分)
- 下一篇: 【测试点分析】1072 开学寄语 (20