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)
}
}