PAT乙 1018 锤子剪刀布 (GO实现)

解题思路:
1.由于超时问题,把scanf替换成bufio
2.定义2个数组,下标0,1,2分别表示用’B’,‘C’,'J’赢的次数,这样输出的时候就不用考虑默认B的情况了
3.定义win,lose,same变量,win和lose相个反就是对方的赢输次数

package main

import (
	"bufio"
	"fmt"
	"os"
)

func  main()  {
	var n int
	var j,y byte
	var inputReader *bufio.Reader
	gameJWin := [3]int{0,0,0}
	gameYWin := [3]int{0,0,0}
	gameCom := [3]byte{'B', 'C', 'J'}
	win,lose,same := 0,0,0
	fmt.Scanf("%d", &n)
	inputReader = bufio.NewReader(os.Stdin)
	for i:=0; i<n; i++ {
		str,_ := inputReader.ReadBytes('\n')
		j = str[0]
		y = str[2]
		if j == 'C' && y == 'J' {
			win++
			gameJWin[1]++
		} else if j == 'C' && y == 'B' {
			lose++
			gameYWin[0]++
		} else if j == 'J' && y == 'C' {
			lose++
			gameYWin[1]++
		} else if j == 'J' && y == 'B' {
			win++
			gameJWin[2]++
		} else if j == 'B' && y == 'C' {
			win++
			gameJWin[0]++
		} else if j == 'B' && y == 'J' {
			lose++
			gameYWin[2]++
		} else {
			same++
		}
	}
	fmt.Printf("%d %d %d\n", win, same, lose)
	fmt.Printf("%d %d %d\n", lose, same, win)

	jmax := 0
	ymax := 0
	for i:=0; i<3; i++ {
		if gameJWin[i] > gameJWin[jmax] {
			jmax = i
		}
		if gameYWin[i] > gameYWin[ymax] {
			ymax = i
		}
	}
	fmt.Printf("%c %c\n", gameCom[jmax], gameCom[ymax])
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值