首页 > 试题广场 >

抛小球

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

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

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

测试样例:
100,90,80,70
返回:1020
头像 重生之我要当分子
发表于 2024-12-31 23:47:27
解题思路 这是一个等比数列求和问题。关键点: 单个小球的路径: 下落: 米 反弹: 米 下落: 米 反弹: 米 下落: 米 ...直到不再反弹 等比数列: 每次反弹高度是前一次的 每个高度都要算两次(上升和下降) 第一次下落只算一次 求和公式: 总距离 = = = 展开全文
头像 laglangyue
发表于 2020-08-04 20:39:58
思路 这题说距离都是整数,是说最终距离总和是整数,由于double的精度问题,不断除2,double最终会成为0用double写个递归,再转为整数。 递归 import java.util.*; public class Balls { public double cal(double 展开全文