文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。
描述 Description
在高为 H 的天花板上有 n 个小球,体积不计,位置分别为 0,1,2,….n-1。在地面上有一个小车(长为 L,高为 K,距原点距离为 S1)。已知小球下落距离计算公式为 d=1/2*g*(t^2),其中 g=10,t 为下落时间。地面上的小车以速度 V 前进。
小车与所有小球同时开始运动,当小球距小车的距离 <= 0.00001 时,即认为小球被小车接受(小球落到地面后不能被接受)。
请你计算出小车能接受到多少个小球。
输入格式 Input Format
输人:
H,S1,V,L,K,n (l<=H,S1,V,L,K,n <=100000)
输出格式 Output Format
小车能接受到的小球个数。
Tip:纯物理题,需要细心,再细心,注意细节。。。
#include <stdio.h>
#include <math.h>
#define g 10.0
#define wc 0.00001
int main(){
float h,s1,v,l,k,down2,down1,go1,go2;
long n,sum=0;
scanf(“%f%f%f%f%f%ld”,&h,&s1,&v,&l,&k,&n);
down1=sqrt(2*h/g);
down2=sqrt(2*(h-k)/g);
go1=s1-v*down1;
go2=s1-v*down2+l;
if (go1<0) go1=0;
if (go2>n-1) go2=n-1;
if (go1-(n-1)>wc||-go2>wc) sum=0;
else{
if (fabs(go1-(int)go1<=wc))
l=(int)go1;
else
l=(int)go1+1;
sum=(int)go2-l+1;
}
printf(“%d”,sum);
system(“pause”);
return 0;
}
转载请注明:Slyar Home » Vijos P1125 自由落体 C语言版