天天看點

【Go語言入門100題】055 誰是赢家 (10 分) Go語言 | Golang

L1-055 誰是赢家 (10 分) Go語言|Golang

某電視台的娛樂節目有個表演評審環節,每次安排兩位藝人表演,他們的勝負由觀衆投票和 3 名評委投票兩部分共同決定。規則為:如果一位藝人的觀衆票數高,且得到至少 1 名評委的認可,該藝人就勝出;或藝人的觀衆票數低,但得到全部評委的認可,也可以勝出。節目保證投票的觀衆人數為奇數,是以不存在平票的情況。本題就請你用程式判斷誰是赢家。

輸入格式:

輸入第一行給出 2 個不超過 1000 的正整數 Pa 和 Pb,分别是藝人 a 和藝人 b 得到的觀衆票數。題目保證這兩個數字不相等。随後第二行給出 3 名評委的投票結果。數字 0 代表投票給 a,數字 1 代表投票給 b,其間以一個空格分隔。

輸出格式:

按以下格式輸出赢家:

The winner is x: P1 + P2      

其中x是代表赢家的字母,P1是赢家得到的觀衆票數,P2是赢家得到的評委票數。

輸入樣例1:

327 129
1 0 1      

結尾無空行

輸出樣例1:

The winner is a: 327 + 1      

思路:

基礎的判斷條件,分開讨論就行了。

代碼如下:

package main

import "fmt"

func main() {
    var a,b,c,d,e int
    _, _ = fmt.Scan(&a, &b)
    _, _ = fmt.Scan(&c, &d, &e)
    if c+d+e == 0 {
        fmt.Printf("The winner is a: %d + %d",a,0)
        return
    }
    if c+d+e == 3 {
        fmt.Printf("The winner is b: %d + %d",b,3)
        return
    }
    if a+3-(c+d+e) > b+c+d+e {
        fmt.Printf("The winner is a: %d + %d",a,3-(c+d+e))
    }
    if a+3-(c+d+e) < b+c+d+e {
        fmt.Printf("The winner is a: %d + %d",b, c+d+e)
    }
}