
石头剪刀布
问题分析:石头剪刀布是一个常见的猜拳游戏,规则为石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一样则不分胜负。小 A 和小 B 的出拳有周期性规律,我们需要生成他们的出拳序列并统计胜负情况。 生成出拳序列:由于出拳有周期性,我们可以通过循环生成长度为 N 的出拳序列。 统计胜负:逐一比较每一轮的出拳,判断胜负并统计胜利次数。 结果比较:最后比较两人的胜利次数,输出结果。 读取输入:首先读取输入数据,包括总轮数 N 以及两个人的出拳周期长度 NA 和 NB。接着读取小 A 和小 B 的出拳序列。 定义胜利判断函数: 循环生成出拳序列:通过循环生成每一轮的出拳序列,使用模运算来循环周期。 统计胜负:在每一轮中,判断胜负并更新胜利次数。 输出结果:比较两人的胜利次数,输出结果。
发布日期:2021-05-14 17:05:09
浏览次数:15
分类:精选文章
本文共 915 字,大约阅读时间需要 3 分钟。
为了解决这个问题,我们需要模拟石头剪刀布游戏,统计小 A 和小 B 在 N 轮比赛中各自赢得的轮数,并确定谁赢得的轮数更多。
方法思路
解决代码
n, na, nb = map(int, input().split())a = list(map(int, input().split()))b = list(map(int, input().split()))sum_a = 0sum_b = 0def a_wins(ac, bc): return (ac == 0 and bc == 2) or (ac == 2 and bc == 5) or (ac == 5 and bc == 0)for i in range(n): ac = a[i % na] bc = b[i % nb] if a_wins(ac, bc): sum_a += 1 elif a_wins(bc, ac): sum_b += 1if sum_a > sum_b: print("A")elif sum_b > sum_a: print("B")else: print("draw")
代码解释
a_wins
函数用于判断小 A 是否在某一轮赢了小 B。发表评论
最新留言
不错!
[***.144.177.141]2025年04月11日 22时13分03秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
MbedOS 设备中的模数转换(ADC)
2019-03-12
MbedOS+MQTT+TICK 栈构建企业大数据平台
2019-03-12
C++ influxdb 客户端
2019-03-12
关于编程能力的思考
2019-03-12
【vue】setInterval的嵌套实例
2019-03-12
【SpringBoot】如何配置热部署
2019-03-12
【rabbitMQ】04 如何实现高可用?
2019-03-12
【自考】之信息资源管理(一)
2019-03-12
C# 文本框限制大全
2019-03-12
setup facatory9.0打包详细教程(含静默安装和卸载)
2019-03-12
ionic4 路由跳转传值
2019-03-12
CSDN 怎么写出好看的博客
2019-03-12
ENDC含义
2019-03-12
Java基本概念:方法
2019-03-12
pwn题shellcode收集
2019-03-12
使用docker搭建nfs实现容器间共享文件 nfs server nfs client
2019-03-12