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

    你可能感兴趣的文章
    Netty工作笔记0011---Channel应用案例2
    查看>>
    Netty工作笔记0014---Buffer类型化和只读
    查看>>
    Netty工作笔记0050---Netty核心模块1
    查看>>
    Netty工作笔记0084---通过自定义协议解决粘包拆包问题2
    查看>>
    Netty常见组件二
    查看>>
    netty底层源码探究:启动流程;EventLoop中的selector、线程、任务队列;监听处理accept、read事件流程;
    查看>>
    Netty核心模块组件
    查看>>
    Netty框架的服务端开发中创建EventLoopGroup对象时线程数量源码解析
    查看>>
    Netty源码—2.Reactor线程模型一
    查看>>
    Netty源码—4.客户端接入流程一
    查看>>
    Netty源码—4.客户端接入流程二
    查看>>
    Netty源码—5.Pipeline和Handler一
    查看>>
    Netty源码—6.ByteBuf原理二
    查看>>
    Netty源码—7.ByteBuf原理三
    查看>>
    Netty源码—7.ByteBuf原理四
    查看>>
    Netty源码—8.编解码原理二
    查看>>
    Netty源码解读
    查看>>
    Netty的Socket编程详解-搭建服务端与客户端并进行数据传输
    查看>>
    Netty相关
    查看>>
    Network Dissection:Quantifying Interpretability of Deep Visual Representations(深层视觉表征的量化解释)
    查看>>