UVa 10387 - Billiard

来源:互联网 发布:mac乐谱制作软件 编辑:程序博客网 时间:2024/05/18 01:41

题目:在一个矩形(边长a,b)上有个台中心有一个球,给它一个速度经过时间s回到中心,

            和两边分别碰撞n、m次,在完全弹性碰撞条件下,求球初始的速度(大小和方向)。

分析:计算几何。因为是在矩形运动,球的运行轨迹为两组对对称的平行线。

            两个方向运动距离为 la = n*a,lb = m*b。

            所以速率为 sqrt(la*la+lb*lb)/s,方向为 atan( lb/la )。

说明:计算几何中的pi最好用反三角函数计算,保证精度。

#include <iostream>#include <cstdlib>#include <cstdio>#include <cmath>using namespace std;const double pi = acos(-1.0);int main(){double a, b, s, m, n;while ( cin >> a >> b >> s >> m >> n && a ) {a *= m; b *= n;printf("%.2lf %.2lf\n",atan(b/a)*180/pi,sqrt(a*a+b*b)/s);}return 0;}

0 0
原创粉丝点击