描述:假设一个球从任意高度自由落下,每次落地后反跳回原高度的一半; 再落下, 求它在第5次落地时,共经历多少米?第5次反弹多高?
数据范围:输入的小球初始高度满足 1 \le n \le 1000 \1≤n≤1000  ,且保证是一个整数
输入描述:输入起始高度,int型
输出描述:分别输出第5次落地时,共经过多少米以及第5次反弹多高。
注意:你可以认为你输出保留六位或以上小数的结果可以通过此题。
输入:
1
输出:
2.875
0.03125
# rev = 0.5 1+0.5=1.5 f1=f0+f0/2,rev=f0/2,f1=f0+rev
# 0.25 1+0.5+0.5+0.25=2.25 rev2=rev1/2,f2=f1+f1/2
# 由下面345次可知,路程res=初始化1米+反弹的1/2=0/5米,反弹为rev/2,每次反弹公式都是确认的
# 反弹时候再下去挨着地后才有砍半,每次到达反弹顶点时候,都重复了上一次的0.5
# 经过测试,res要先加之前的1,然后加1/2,=1.5=res,则下次0.5进来时候,则加上res+res/2
# 感觉有凑数的嫌疑,最终发现比实际结果多了个反弹,因为最后只管落地,所以要减去1个rev反弹

# 0.125 1+0.5+0.5+0.25+0.25+0.125=2.625 rev3=rev2/2,f3=f2+f2/2
# 0.0625 1+0.5+0.5+0.25+0.25+0.125+0.125+0.0625=2.8125
# 0.03125 1+0.5+0.5+0.25+0.25+0.125+0.125+0.0625+0.0625+此时不需要加,因为只管第5此落地
# 加了反弹的2.90625为如下:
# print(1+0.5+0.5+0.25+0.25+0.125+0.125+0.0625+0.0625+0.03125)
# 不加反弹,正好减去0.03125,print(2.90625-2.875)
# 用递归写不出来,但是已知的是第五次,直接for循环,此处也是让自己死结了,总数觉得这种问题是递归
# 实际上for循环更简单方便理解,递归考虑次数/初始值/rev反弹值上,不知递归函数参数怎么设置为好

def exam(num):
    rev = num
    res = 0
    # 题目限制5次
    for i in range(5):
        # 考虑完了下面反弹rev后,再考虑路程,路程等于初始化的1米+反弹的0.5米
        # 下一个遍历i=1时,是需要原有res基础上加个之前的rev0.5后,再加个0.5的一半
        # 此处有凑数嫌疑,。。如rev/2下面语句放前面,应该也可以,只是得加上一次的rev*2
        res += rev + rev / 2
        # 先考虑反弹,每次遍历i时候,肯定要除以2求商
        rev = rev / 2
    # 最终发现多了个反弹,减去个rev
    res = res - rev
    print(res)
    # 0.03125
    print(rev)
    # 2.875
    
def exam2(num):
    rev = num
    res = 0
    for i in range(5):
        # 先砍半,得到反转弹回高度
        rev = rev / 2
        # 路程结果,是要原始值1加上反弹值0.5,则结束了第1次i=0的遍历
        # i=2时,需要原始res加上,翻倍的rev=上一次反弹的得加上才行,再加上当下的
        res += rev * 2 + rev

    res = res - rev
    print(res)
    # 0.03125
    print(rev)
    # 2.875
    
num = int(input().strip())
exam2(num=num)