PTA刷題Advanced甲級——1011.World Cup Betting——Day(6)

問題描述

在這裏插入圖片描述
題目翻譯:
在2010FIFA世界盃進行時,當最好的球隊中最棒的球員在爲了世界盃獎盃而在南美拼搏時,來自世界各地的球迷非常激動和興奮。同樣的,愛好足球賭博的人也通過實際行動參與了進來,不過用的是各種世界盃賭博方式。
中國足球彩票推出了一個“三倍贏”遊戲。勝利的規則非常簡單:首先選擇任意三個遊戲。然後對於每個選擇的遊戲,賭其中三個可能的結果中的其中一個,叫W是贏,T的是平局,L是輸。對於每個結果都有一個剩餘的值。勝利者的剩餘將會是三個剩餘值的65%。
例如,3個遊戲的剩餘在下面給出:
W T L
1.1 2.5 1.7
1.2 3.1 1.6
4.1 1.2 1.1
要想獲得最大的利潤,必須在第三個遊戲中買W,第二個遊戲中買T,第三個遊戲中買T。如果每次賭博花費2元,則最大的最大的利潤將會是(4.13.02.5*65%-1)*2= 37.98元。(精確到兩位小數)

輸入
每個輸入文件包含一個測試實例。每個實例包含三個遊戲的賭博信息。每個遊戲有一行,裏面包含三個與W、T和L對應的剩餘值。

輸出
對於每個測試實例,在一行中輸出每個遊戲最好的賭博選擇,還有精確到兩位小數的最大利潤。字符和數字必須用一個空格分隔。

樣例輸入:
1.1 2.5 1.7
1.2 3.1 1.6
4.1 1.2 1.1

樣例輸出:
T T W 37.31

題目分析

我們邊輸入邊進行判斷輸出,選出每一行輸入中最大的,如果是第一個數最大,輸出W;第二個最大輸出T;第三個數最大輸出L。
然後按照題目中給出的公式記錄最後的價格,並保留兩位有效數字。

代碼

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
    char state[3] = {'W','T','L'};
    double bet[3][3];
    double sum = 1.0;
    for(int i = 0;i < 3;i++)
    {
        double max = 0.0;
        int pos = 0;
        for(int j = 0;j < 3;j++)
        {
            cin>>bet[i][j];
            if(bet[i][j]>max)
            {    
                max = bet[i][j];
                pos = j;
            }
        }
        sum *= max;
        cout<<state[pos]<<" ";
    }
    sum = (sum * 0.65 - 1) * 2;
    cout<<setiosflags(ios::fixed)<<setprecision(2)<<sum;
    return 0;
}

答題用時7min
Q11——finish√

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章