博客
关于我
PAT 锤子剪刀布
阅读量:366 次
发布时间:2019-03-05

本文共 1613 字,大约阅读时间需要 5 分钟。

要解决这个问题,我们需要统计“锤子剪刀布”游戏中双方的胜、平、负次数,并找出双方分别出什么手势的胜算最大。

方法思路

  • 读取输入:首先读取交锋的次数 N,然后读取每一场交锋的结果。
  • 统计胜负平次数:根据每一场交锋的结果,更新甲和乙的胜、平、负次数。
  • 确定胜利手势:分别统计甲和乙每个手势的胜利次数,找出胜利次数最多的手势。如果有多个手势胜利次数相同,选择字母序最小的。
  • 解决代码

    n = int(input())jia_arr = [0, 0, 0]  # B, C, Jyi_arr = [0, 0, 0]win_jia = 0ping_jia = 0fu_jia = 0for _ in range(n):    jia, yi = input().split()    if jia == yi:        ping_jia += 1    else:        if (jia == 'C' and yi == 'J') or (jia == 'J' and yi == 'C'):            win_jia += 1            jia_arr[1] += 1        elif (jia == 'C' and yi == 'B') or (jia == 'B' and yi == 'C'):            fu_jia += 1            jia_arr[0] += 1        elif (jia == 'J' and yi == 'B') or (jia == 'B' and yi == 'J'):            fu_jia += 1            jia_arr[2] += 1        elif (jia == 'J' and yi == 'C') or (jia == 'C' and yi == 'J'):            win_jia += 1            jia_arr[2] += 1        elif (jia == 'B' and yi == 'J') or (jia == 'J' and yi == 'B'):            win_jia += 1            jia_arr[0] += 1        elif (jia == 'B' and yi == 'C') or (jia == 'C' and yi == 'B'):            fu_jia += 1            jia_arr[1] += 1def get_max(arr):    max_val = -1    max_index = 0    for i in range(len(arr)):        if arr[i] > max_val:            max_val = arr[i]            max_index = i    return arr[max_index]flag1 = get_max(jia_arr)flag2 = get_max(yi_arr)print(f"{win_jia} {ping_jia} {fu_jia}")print(f"{fu_jia} {ping_jia} {win_jia}")print(f"{flag1} {flag2}")

    代码解释

  • 读取输入:读取交锋次数 N 和每一场交锋的结果。
  • 统计胜负平次数:根据每一场的结果,更新甲和乙的胜、平、负次数,并记录每个手势的胜利次数。
  • 确定胜利手势:使用函数 get_max 分别找出甲和乙各自最常获胜的手势,若有多个手势胜利次数相同,按字母序选择最小的。
  • 这个方法确保了代码的简洁和逻辑的清晰,能够正确统计双方的胜负次数并确定胜利手势。

    转载地址:http://ebqg.baihongyu.com/

    你可能感兴趣的文章
    中缀表达式转后缀表达式
    查看>>
    Java笔记:单链表
    查看>>
    Java基础题:小根堆为8,15,10,21,34,16,12,删除关键字8之后需重建堆,需要的比较次数为?
    查看>>
    Java基础题:哈夫曼树
    查看>>
    phthon基本语法——温习
    查看>>
    sleep、wait、yield、join——简介
    查看>>
    web项目配置
    查看>>
    VTK:相互作用之KeypressEvents
    查看>>
    VTK:相互作用之MouseEventsObserver
    查看>>
    VTK:相互作用之PickableOff
    查看>>
    VTK:相互作用之Picking
    查看>>
    VTK:Medical之MedicalDemo2
    查看>>
    libfacedetection库的配置及基本使用——内涵(cmake编译libfacedetection库)
    查看>>
    VS配置属性表,保存Opencv配置信息
    查看>>
    c语言(基本数据类型)实参与形参传值 用汇编理解
    查看>>
    输入端噪声容限
    查看>>
    vue——this.$route 与 this.$router
    查看>>
    基于单片机可控音乐流水灯控制设计-全套资料
    查看>>
    基于单片机简易信号误差分析设计-全套资料
    查看>>
    基于单片机简易洗衣机系统仿真设计-全套资料
    查看>>