博客
关于我
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/

    你可能感兴趣的文章
    Object.keys()的详解和用法
    查看>>
    objectForKey与valueForKey在NSDictionary中的差异
    查看>>
    Objective - C 小谈:消息机制的原理与使用
    查看>>
    OBJECTIVE C (XCODE) 绘图功能简介(转载)
    查看>>
    Objective-C ---JSON 解析 和 KVC
    查看>>
    Objective-C 编码规范
    查看>>
    Objective-Cfor循环实现Factorial阶乘算法 (附完整源码)
    查看>>
    Objective-C——判断对象等同性
    查看>>
    objective-c中的内存管理
    查看>>
    Objective-C之成魔之路【7-类、对象和方法】
    查看>>
    Objective-C享元模式(Flyweight)
    查看>>
    Objective-C以递归的方式实现二叉搜索树算法(附完整源码)
    查看>>
    Objective-C内存管理教程和原理剖析(三)
    查看>>
    Objective-C实现 Greedy Best First Search最佳优先搜索算法(附完整源码)
    查看>>
    Objective-C实现 jugglerSequence杂耍者序列算法 (附完整源码)
    查看>>
    Objective-C实现 lattice path格子路径算法(附完整源码)
    查看>>
    Objective-C实现1000 位斐波那契数算法(附完整源码)
    查看>>
    Objective-C实现2 个数字之间的算术几何平均值算法(附完整源码)
    查看>>
    Objective-C实现2d 表面渲染 3d 点算法(附完整源码)
    查看>>
    Objective-C实现2D变换算法(附完整源码)
    查看>>