博客
关于我
Py3 字符串水题
阅读量:367 次
发布时间:2019-03-04

本文共 841 字,大约阅读时间需要 2 分钟。

要计算由多个部分组成的武器伤害的期望值,每个部分可以是固定伤害或掷骰子的和。以下是解决方案:

  • 输入处理:读取输入字符串,拆分成各部分。
  • 每部分处理:检查是否包含“d”,如果是,计算掷骰子的期望值;否则,加上固定伤害。
  • 期望值计算:将所有部分的期望值累加。
  • 输出结果:根据总和是否为整数,输出整数或保留一位小数。
  • 以下是完整的Python代码:

    while True:    try:        s = input().split('+')        ans = 0.0        for part in s:            if 'd' in part:                n, x = part.split('d')                ans += (int(n) * (int(x) + 1)) / 2            else:                ans += int(part)        if ans.is_integer():            print(int(ans))        else:            print("{0:.1f}".format(ans))    except:        break

    步骤解释

  • 读取输入:使用input().split('+')将字符串拆分成各个部分。
  • 遍历每个部分:检查是否包含“d”来判断是否为骰子部分。
  • 计算期望值:对于骰子部分,使用公式(n*(x+1))/2计算期望值;固定伤害直接加到总和中。
  • 输出结果:检查总和是否为整数,如果是,输出整数;否则,保留一位小数并输出。
  • 示例:对于输入“2d6+1d70+3”,计算步骤如下:

    • 2d6:期望值为 (2*(6+1))/2 = 7
    • 1d70:期望值为 (1*(70+1))/2 = 35.5
    • 固定伤害3:加3
    • 总期望值:7 + 35.5 + 3 = 45.5

    输出结果为45.5。

    转载地址:http://pryg.baihongyu.com/

    你可能感兴趣的文章
    pandas :加入有条件的数据框
    查看>>
    pandas :将多列汇总为一列,没有最后一列
    查看>>
    pandas :将时间戳转换为 datetime.date
    查看>>
    pandas :将行取消堆叠到新列中
    查看>>
    pandas DataFrame 中的自定义浮点格式
    查看>>
    Pandas DataFrame 的 describe()方法详解-ChatGPT4o作答
    查看>>
    Pandas DataFrame中删除列级的方法链接解决方案
    查看>>
    Pandas DataFrame中的列从浮点数输出到货币(负值)
    查看>>
    Pandas DataFrame中的列从浮点数输出到货币(负值)
    查看>>
    Pandas DataFrame多索引透视表-删除空头和轴行
    查看>>
    pandas DataFrame的一些操作
    查看>>
    Pandas Dataframe的日志文件
    查看>>
    Pandas df.iterrows() 并行化
    查看>>
    pandas GROUPBY+变换和多列
    查看>>
    pandas Groupby:创建两列的Groupby时,如何按正确的顺序对工作日进行排序?
    查看>>
    Pandas matplotlib 无法显示中文
    查看>>
    pandas PIVOT_TABLE保持索引
    查看>>
    Pandas Plots:周末的单独颜色,x 轴上漂亮的打印时间
    查看>>
    pandas to_latex() 转义数学模式
    查看>>
    Pandas 中文官档 ~ 基础用法4
    查看>>