PAT-ADVANCED1011——World Cup Betting
阿新 • • 發佈:2018-11-11
我的PAT-ADVANCED程式碼倉:https://github.com/617076674/PAT-ADVANCED
原題連結:https://pintia.cn/problem-sets/994805342720868352/problems/994805504927186944
題目描述:
題目翻譯:
1011 世界盃打賭
隨著2010年FIFA世界盃的舉辦,世界各地的足球迷越來越興奮,因為來自頂級球隊的頂級球員們在南非爭奪世界盃獎盃。同樣,足球博彩迷通過各種世界盃投注錢。
中國足球彩票提供了“三贏”遊戲。獲勝的規則很簡單:首先選擇任意三場比賽。然後對於每個選定的遊戲,下注三個可能的結果之一——即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
要獲得最大利潤,必須購買第3場比賽的W,第2場比賽的T和第1場比賽的T。如果每次下注2元,則最大利潤為(4.1 × 3.1 × 2.5 × 65% - 1) × 2 = 39.31元(精確到2位小數)。
輸入格式:
每個輸入檔案包含一個測試用例。每個案例包含3場比賽的投注資訊。每場比賽佔據一行,其中三個不同的賠率對應於W,T和L。
輸出格式:
對每個測試用例,在一行中列印每個遊戲的最佳賭注,最大利潤精確到小數點後2位。字元和數字必須用一個空格分隔。
輸入樣例:
1.1 2.5 1.7
1.2 3.1 1.6
4.1 1.2 1.1
輸出樣例:
T T W 39.31
知識點:求最值
思路:求每行的最大值
時間複雜度和空間複雜度的分析對本題來說意義不大。
C++程式碼:
#include<iostream> using namespace std; int main(){ char result[3] = {'W', 'T', 'L'}; double max, num; int index; double profit = 1.0; for(int i = 0; i < 3; i++){ max = 0.0; index = -1; for(int j = 0; j < 3; j++){ scanf("%lf", &num); if(num > max){ max = num; index = j; } } printf("%c ", result[index]); profit *= max; } printf("%.2f\n", (profit * 0.65 - 1) * 2); }
C++解題報告: