POJ 2641

题意:在b*a的区域打台球,初始位置在中点,s秒之后,与水平边撞击n次,与垂直边撞击m次,并回到中点,求球的初速度与角度。

题解:球的水平速度设为Vx,那么s秒后水平路程为Vx*s,与垂直边撞击m次又回到中点,由此得到水平路程为m*a,于是Vx*s=m*a,同理Vy*s=n*b,两式联立得答案。

View Code
 1 #include<cstdio>
 2 #include<cstring>
 3 #include<cmath>
 4 using namespace std;
 5 const double pi=acos(-1.0);
 6 int main()
 7 {
 8     double a,b,s,m,n,v,th;
 9     while(scanf("%lf%lf%lf%lf%lf",&a,&b,&s,&m,&n),(a||b||s||m||n))
10     {
11         th=atan2(n*b,m*a);
12         v=sqrt(m*m*a*a+n*n*b*b)/s;
13         printf("%.2lf %.2lf\n",th*180.0/pi,v);
14     }
15     return 0;
16 }

转载于:https://www.cnblogs.com/tmeteorj/archive/2012/10/03/2710734.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值