|
发表于 2022-4-11 09:05:47
|
显示全部楼层
本楼为最佳答案
本帖最后由 andy大宝 于 2022-4-11 09:07 编辑
我的代码有些繁琐 应该有更好的方法,先理解一下,之后学到列表可以更快一些
- import random
- temp = int(input("请输入抛硬币次数:"))
- count = 0 #抛硬币次数
- last = 0 #最后一次抛硬币正反
- maxz = 0 #正面最多连续出现的次数
- maxf = 0 #反面最多连续出现的次数
- nc = 0 #最后一次连续出现的次数
- while count < temp:
- count = count + 1
- secret = random.randint(1,2) #1代表正,2代表反
- if secret == 1: #虽然用数字代表正反,但打印时需要转换
- print("正",end=" ")
- else:
- print("反",end=" ")
-
- if secret == last: #如果连续
- nc = nc + 1
- else: #如果不连续
- if last == 1: #如果最后一次连续为正面
- if maxz < nc:
- maxz = nc
- else:
- if maxf < nc: #第一轮循环不会受到影响
- maxf = nc
-
- last = secret #为下一轮循环初始化
- nc = 1 #包括这一轮循环,也连续出现过一次
- if last == 1: #最后一轮还需要判断一次
- if maxz < nc:
- maxz = nc
- else:
- if maxf < nc:
- maxf = nc
-
- print()
- print("正面最多连续出现的次数为:" + str(maxz))
- print("反面最多连续出现的次数为:" + str(maxf))
复制代码 |
|