博客
关于我
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源码—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(深层视觉表征的量化解释)
    查看>>
    Network Sniffer and Connection Analyzer
    查看>>
    NetworkX系列教程(11)-graph和其他数据格式转换
    查看>>
    Networkx读取军械调查-ITN综合传输网络?/读取GML文件
    查看>>
    Net与Flex入门
    查看>>
    net包之IPConn
    查看>>
    NFinal学习笔记 02—NFinalBuild
    查看>>
    NFS共享文件系统搭建
    查看>>
    nfs复习
    查看>>
    NFS网络文件系统
    查看>>
    nft文件传输_利用remoting实现文件传输-.NET教程,远程及网络应用
    查看>>
    ng 指令的自定义、使用
    查看>>