liupivvvv 2022-04-13 19:24 采纳率: 0%
浏览 349

用python石头剪刀布是常见的猜拳游戏。

#石头剪刀布是常见的猜拳游戏。石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一样,则不分胜负。

一天,小 AA 和小 BB 正好在玩石头剪刀布。已知他们的出拳都是有周期性规律的,比如:“石头-布-石头-剪刀-石头-布-石头-剪刀……”,就是以“石头-布-石头-剪刀”为周期不断循环的。请问,小 AA 和小 BB 比了 NN 轮之后,谁赢的轮数多?

输入格式
输入包含三行。

第一行包含三个整数:NN,NANA,NBNB,分别表示比了 NN 轮,小 AA 出拳的周期长度,小 BB 出拳的周期长度。0 < N,NA,NB < 1000<N,NA,NB<100。

第二行包含 NANA 个整数,表示小 AA 出拳的规律。

第三行包含 NBNB 个整数,表示小 BB 出拳的规律。

其中,00 表示“石头”,22 表示“剪刀”,55 表示“布”。相邻两个整数之间用单个空格隔开。

输出格式
输出一行,如果小 AA 赢的轮数多,输出"A";如果小 BB 赢的轮数多,输出"B";如果两人打平,输出 "draw"。

提示
对于测试数据,猜拳过程为:

\text{A:0 2 5 0 2 5 0 2 5 0}A:0 2 5 0 2 5 0 2 5 0
\text{B:0 5 0 2 0 5 0 2 0 5}B:0 5 0 2 0 5 0 2 0 5

AA 赢了 44 轮,BB 赢了 22 轮,双方打平 44 轮,所以 AA 赢的轮数多。

  • 写回答

1条回答 默认 最新

  • 貮叁 2022-04-15 17:21
    关注
    aa,bb = 0 ,0      #aa,bb 初始化
    n,a,b= (int(m) for m in input().split())
    
    L1 = [int(i) for i in input().split()]
    L2 = [int(j) for j in input().split()]
    for k in range(1,n+1):
        if L1[(k-1)%a]==2 and L2[(k-1)%b]==5:
            aa += 1
        elif L1[(k-1)%a]==5 and L2[(k-1)%b]==0:
            aa += 1
        elif L1[(k-1)%a]==0 and L2[(k-1)%b]==2:
            aa += 1
    
        elif L1[(k-1)%a]== L2[(k-1)%b]:
            pass
        elif L2[(k - 1) % b] == 2 and L1[(k - 1) % a] == 5:
            bb += 1
        elif L2[(k - 1) % b] == 5 and L1[(k - 1) % a] == 0:
            bb += 1
        elif L2[(k - 1) % b] == 0 and L1[(k - 1) % a] == 2:
            bb += 1
    
    if aa > bb:
        print('A')
    elif aa == bb:
        print('draw')
    elif aa < bb:
        print('B')
    

    如有用请采纳

    评论

报告相同问题?

问题事件

  • 创建了问题 4月13日

悬赏问题

  • ¥15 obsidian的中文层级自动编号
  • ¥15 同一个网口一个电脑连接有网,另一个电脑连接没网
  • ¥15 神经网络模型一直不能上GPU
  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
  • ¥20 wpf datagrid单元闪烁效果失灵
  • ¥15 券商软件上市公司信息获取问题
  • ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout
  • ¥15 Android studio AVD启动不了
  • ¥15 陆空双模式无人机怎么做
  • ¥15 想咨询点问题,与算法转换,负荷预测,数字孪生有关