首页 > 试题广场 >

自由落体

[编程题]自由落体
  • 热度指数:541 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
在高为 H 的天花板上有 n 个小球,体积不计,位置分别为 0,1,2,….n-1。在地面上有一个小车(长为 L,高为 K,距原点距离为 S1)。已知小球下落距离计算公式为 d=1/2*g*(t^2),其中 g=10,t 为下落时间。地面上的小车以速度 V 前进。如下图:
小车与所有小球同时开始运动,当小球距小车的距离 <= 0.00001 时,即认为小球被小车接受(小球落到地面后不能被接受)。
请你计算出小车能接受到多少个小球。

输入描述:
输入H,S1,V,L,K,n (l<=H,S1,V,L,K,n<=100000)


输出描述:
输出小车能接受到的小球个数。
示例1

输入

5.0 9.0 5.0 2.5 1.8 5

输出

1
H,S1,V,L,K,n=input().split()
H,S1,V,L,K,n=float(H),float(S1),float(V),float(L),float(K),int(n)
t1=((H-K)/5)**0.5 #落于车顶时的时间
t2=(H/5)**0.5 #落于地面的时间
cnt=0
for i in range(n):
    if i<=(S1-V*t1+L)+0.00001 and i>=(S1-V*t2)-0.00001:
        cnt+=1
print(cnt)


发表于 2025-05-28 00:07:43 回复(0)
好奇,题目中没有定义每个球下落之间的时间啊怎么计算呢?难道是当一个球落地了,第二球才开始下落?
发表于 2025-05-27 15:31:23 回复(0)

问题信息

难度:
2条回答 83浏览

热门推荐

通过挑战的用户

自由落体