首页 > 试题广场 >

抛小球

[编程题]抛小球
  • 热度指数:14004 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

小东和三个朋友一起在楼上抛小球,他们站在楼房的不同层,假设小东站的楼层距离地面N米,球从他手里自由落下,每次落地后反跳回上次下落高度的一半,并以此类推直到全部落到地面不跳,求4个小球一共经过了多少米?(数字都为整数)

给定四个整数A,B,C,D,请返回所求结果。

测试样例:
100,90,80,70
返回:1020
推荐
设整数为x,得到公式:
sn = x + x * (1 + 1/2 + 1/4 + ... + (1/2)^m)
sn = x + x * (1- (1/2)^m) / (1-1/2)
(1/2)^m 无限接近于0
sn = x + x * 2;
sn = 3x;
所以答案为 3*(A+B+C+D)
不知道这样说对不。。。
编辑于 2016-03-26 12:47:34 回复(10)
class Balls:
    def calcDistance(self, A, B, C, D):
        return 3*(A+B+C+D)

发表于 2018-07-24 10:46:19 回复(0)

python:



class Balls:
    def calcDistance(self, A, B, C, D):
        return 3 * (A + B + C + D)
发表于 2018-04-13 19:40:56 回复(1)
class Balls:
    def calcDistance(self, A, B, C, D):
        return 3 * sum([A, B, C, D])

发表于 2016-12-29 00:28:36 回复(0)