PAT 乙級 1071.小賭怡情 C++/Java

題目來源ios

常言道「小賭怡情」。這是一個很簡單的小遊戲:首先由計算機給出第一個整數;而後玩家下注賭第二個整數將會比第一個數大仍是小;玩家下注 t 個籌碼後,計算機給出第二個數。若玩家猜對了,則系統獎勵玩家 t 個籌碼;不然扣除玩家 t 個籌碼。spa

注意:玩家下注的籌碼數不能超過本身賬戶上擁有的籌碼數。當玩家輸光了所有籌碼後,遊戲就結束。code

輸入格式:

輸入在第一行給出 2 個正整數 T 和 K(≤ 100),分別是系統在初始狀態下贈送給玩家的籌碼數、以及須要處理的遊戲次數。隨後 K 行,每行對應一次遊戲,順序給出 4 個數字:blog

n1 b t n2 

其中 n1 和 n2 是計算機前後給出的兩個[0, 9]內的整數,保證兩個數字不相等。b 爲 0 表示玩家賭,爲 1 表示玩家賭t 表示玩家下注的籌碼數,保證在整型範圍內。token

輸出格式:

對每一次遊戲,根據下列狀況對應輸出(其中 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.

分析:

循環K次,每次先對剩餘籌碼進行判斷,再判斷玩家的輸贏,若是玩家輸了,扣除籌碼以後還要判斷是否等於0,籌碼爲0就GameOverci

C++實現:

 1 #include <iostream>
 2 using namespace std;
 3 
 4 int main()
 5 {
 6     int totalMoney = 0;    //總籌碼
 7     int gameRound = 0;        //須要處理的遊戲次數
 8     int n1;    //計算機給出的0-9的數
 9     int b;    //b=0:賭小    b=1:賭大
10     int n2;    //計算機給出的0-9的數 n1!=n2
11     int t;    //玩家下注量
12     
13     cin >> totalMoney >> gameRound;    
14 
15     for (int i = 0; i < gameRound; ++i)
16     {
17         cin >> n1 >> b >> t >> n2;
18         
19         if (t > totalMoney)
20         {
21             printf("Not enough tokens.  Total = %d.\n", totalMoney);
22             continue;
23         }
24         
25         if ((b == 0 && n1 > n2) || (b == 1 && n2 > n1))
26         {
27             //贏了
28             totalMoney += t;
29             printf("Win %d!  Total = %d.\n", t, totalMoney);
30             continue;
31         }
32         if ((b == 0 && n1 < n2) || (b == 1 && n2 < n1))
33         {
34             //輸了
35             totalMoney -= t;
36             printf("Lose %d.  Total = %d.\n", t, totalMoney);
37         }
38 
39         if (totalMoney <= 0)
40         {
41             printf("Game Over.\n");
42             i = gameRound + 1;  //退出循環
43         }    
44     }
45     return 0;
46 }

 

 

 

Java實現:

相關文章
相關標籤/搜索