最新消息:点击查看大S的省钱秘笈

Vijos P1125 自由落体 C语言版

Vijos题解 Slyar 85浏览 0评论

文章作者:姜南(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语言版

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址