华为机试第25题

描述
假设一个球从任意高度自由落下,每次落地后反跳回原高度的一半; 再落下, 求它在第5次落地时,共经历多少米?第5次反弹多高?

最后的误差判断是小数点6位

输入描述:
输入起始高度,int型

输出描述:
分别输出第5次落地时,共经过多少米第5次反弹多高

示例1
输入:
1
复制
输出:
2.875
0.03125

while True:
    try:
        s=int(input())
        s1=round(float(s),5)  #对输入取整之后再取小数点后5位精度
        he=s1                 
#初始第一次落地经历的路径长度,后续都是反弹加回落的#距离,实际是反弹距离*2
        for j in range(1,6):
            if j==1 :   #第一次落地经过的路径距离就是输入的高度
                he=he
            if j!=1 :   #从第二次开始落地距离为之前距离+反弹距离*2
                he=he+s1*2
            s1=round(float(s1/2),5) #反弹距离为前次高度的一半,同时再取一次精度
        print(float(he))    #按照要求格式输出
        print(float(s1))
    except:
        break
全部评论

相关推荐

05-29 20:34
门头沟学院 C++
KarlAllen_直通春招版:得做好直接春招的准备。学历差的话,一是面试要求会比学历好的严格不少,二是就算面试通过了也会被排序。总之暑期和秋招对于学历差的就是及其不友好
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务