解题思路:
1、本题如何用数字表达石头剪刀布之间的获胜规则:如石头对剪刀 石头胜,剪刀对布 剪刀胜,布对石头 布获胜。(本题采用数值小的一方获胜)
2、如何运用循环将出拳的规律表达出来。
3、石头对布的取胜规则不符合(1、....)中的想法,所以采用if语句对此情况设立特殊的取胜规则。
注意事项:
1、(l += 1) 和 (h += 1) 不能放在之后的if语句的后面,不然将无法进行正确的循环。
参考代码:
n, a_cycle, b_cycle = map(int, input().split()) #用将猜拳次数和A、B的猜拳周期读入 a_law = [int(i) for i in input().split()] #将A的猜拳规律读入 b_law = [int(i) for i in input().split()] #将B的猜拳规律读入 A, B, l, h = 0, 0, 0, 0 #用A、B记录获胜的次数,用l、h记录A、B的猜拳次数 for i in range(n): #进行n次循环 if a_law[l] == b_law[h]: #当A、B数值一样,A、B数值不变 A = A B = B elif a_law[l] < b_law[h]: #当A<B时,有两种情况 if a_law[l] == 0 and b_law[h] == 5: #1、当A出拳,B出布时,B获胜 B += 1 else: #2、其他情况,A获胜 A += 1 else: #当B<A时,有两种情况 if a_law[l] == 5 and b_law[h] == 0: #与上述同理 A += 1 else: B += 1 l += 1 #每循环一遍增加一次猜拳的次数 h += 1 if l > a_cycle-1: #当猜拳的次数超过猜拳周期,令l=0,重新按照猜拳规律出拳 l = 0 if h > b_cycle-1: #与上述同理 h = 0 if A > B: #最后进行比较,输出胜者 print('A') elif B > A: print('B') else: print("draw")
0.0分
1 人评分
时间转换 (Java代码)浏览:618 |
剔除相关数 (C语言代码)浏览:1060 |
【偶数求和】 (C语言代码)浏览:677 |
字符串输入输出函数 (C语言代码)浏览:2644 |
陈教主的三角形 (C语言代码)浏览:1201 |
震宇大神的杀毒软件 (C语言代码)浏览:1165 |
C语言训练-大、小写问题 (C语言代码)浏览:719 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:495 |
青年歌手大奖赛_评委会打分 (C语言代码)浏览:2249 |
A+B for Input-Output Practice (II) (C语言代码)浏览:622 |