题目描述
小明在玩进阶版大富翁,进阶版大富翁有特殊的步数计算方法。小明每次可以走的步数由一个公式决定。公式每个部分可以是一个整数或者一次数字抽奖 nds
。nds
表示,在 1
到 s
中的整数中,可以抽取 n
次,结果是你 n
次结果的和。总步数就是整个式子的结果。
如 1+2d3
,代表的就是 1+2次在1到3之间抽取数字的结果
。结果最小值为三,最大值为七。
现在题目中会给你一个字符串 s
表示步数的计算公式,请你编写代码,帮小明计算一下,他可以走的步数的期望值是多少?(结果如果不是整数,那么保留一位小数)。
输入输出格式
输入格式 一个字符串 s
。
输出格式 一个整数。
输入输出样例1
输入 1+2d3
输出 5
输入输出样例2
输入 3d3+5+1d9
输出 16
s = input()
ans = 0
minn = 0
maxm = 0
low = 0
for i in range(0,len(s)-1):
if s[i] == '+':
q = s[low:i]
low = i+1
if 'd' not in q:
ans += int(q)
else:
for j in range(len(q)):
if q[j] == 'd':
sen = q[0:j]
ren = q[j+1:]
minn += int(sen) * 1
maxm += int(sen) * int(ren)
high = s[low:]
if 'd' not in high:
ans += int(high)
else:
for w in range(len(high)):
if high[w] == 'd':
sen = int(high[0:w])
ren = int(high[w + 1:])
minn += sen * 1
maxm += sen * ren
example = ((ans+minn)+(ans+maxm))/2
if example-int(example)>0:
print('{:.1f}'.format(example))
else:
print(int(example))