题目大意:一个台球桌,水平的为长板,长度为a,竖直的为宽板,长度为b,球从台球桌正中心以与水平线成angle角度,v速度打出,经过时间s后回到中心点,期间与宽板碰撞m次,与长板碰撞n次。输入a,b,s,m,n。求angle,v。
解题思路:画图,就能发现,与长板碰撞一次,意味着球在竖直方向上运动了宽板的长度b,与横板碰撞一次,意味着球在水平方向上运动了长板的长度a。花为一条直线来描述球的总路程,就是横长为a*m,竖长b*n的组成的斜线。角度、速度都能求了。
ac代码:
#include <iostream>
#include <cmath>
#define Pi 3.141592653
using namespace std;
int a, b, t, m, n;
double angle, v;
int main()
{
while (scanf("%d%d%d%d%d", &a, &b, &t, &m, &n)!=EOF){
if (a == 0)
break;
angle = atan(b*n*1.0/(a*m)) * 180.0 / Pi;
v = sqrt(pow(a*m, 2)+pow(b*n, 2)) / t;
printf("%.2lf %.2lf\n", angle, v);
}
return 0;
}