L1-044 稳赢 (15 分) Go语言|Golang
大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:
现要求你编写一个稳赢不输的程序,根据对方的出招,给出对应的赢招。但是!为了不让对方输得太惨,你需要每隔K次就让一个平局。
输入格式:
输入首先在第一行给出正整数K(≤10),即平局间隔的次数。随后每行给出对方的一次出招:ChuiZi代表“锤子”、JianDao代表“剪刀”、Bu代表“布”。End代表输入结束,这一行不要作为出招处理。
输出格式:
对每一个输入的出招,按要求输出稳赢或平局的招式。每招占一行。
输入样例1:
2 ChuiZi JianDao Bu JianDao Bu ChuiZi ChuiZi End
结尾无空行
输出样例1:
Bu ChuiZi Bu ChuiZi JianDao ChuiZi Bu
结尾无空行
思路:
只需要用一个列表去存好这个对应的答案就好。然后再进行输出
代码如下:
package main import ( "fmt" ) func main() { var num int _,_=fmt.Scan(&num) count := 0 var resultList []string for { var str string _,_=fmt.Scan(&str) if str == "End" { // 如果是End就直接退出了 break } if count==2 { // 如果count==2就说明这个是个平局,直接填入一个即可 count=-1 resultList = append(resultList, str) }else{ if str=="ChuiZi" { resultList = append(resultList, "Bu") }else if str=="JianDao"{ resultList = append(resultList, "ChuiZi") }else if str=="Bu"{ resultList = append(resultList, "JianDao") } } count++ } for i:=0;i<len(resultList);i++ { if i == 0 { fmt.Printf("%s",resultList[i]) }else{ fmt.Printf("\n%s",resultList[i]) } } }