解题思路
这是一个等比数列求和问题。关键点:
-
单个小球的路径:
- 下落: 米
- 反弹: 米
- 下落: 米
- 反弹: 米
- 下落: 米
- ...直到不再反弹
-
等比数列求和:
- 第一次下落:
- 后续每次上下:
- 总路程 =
-
四个小球:
- 每个小球的路程都是初始高度的3倍
- 总路程 =
代码
class Balls {
public:
int calcDistance(int A, int B, int C, int D) {
return 3 * (A + B + C + D);
}
};
import java.util.*;
public class Balls {
public int calcDistance(int A, int B, int C, int D) {
// write code here
return 3 * (A + B + C + D);
}
}
# -*- coding:utf-8 -*-
class Balls:
def calcDistance(self, A, B, C, D):
return 3 * (A + B + C + D)
算法及复杂度
- 算法:数学公式
- 时间复杂度:,直接计算
- 空间复杂度:,只使用常数额外空间