题解:将台球走过的路线分解并投影到水平和垂直两个方向,两个长度乘对应碰撞的次数得到总长度,除时间,得到速度,将水平和竖直两个方向总长度相除并求反内切函数,再把弧度化成角度得到结果。
#include <stdio.h>
#include <math.h>
int main (){
int a, b, s, m, n;
while (scanf("%d%d%d%d%d", &a, &b, &s, &m, &n) && (a || b || s || m || n)) {
double v = sqrt(pow(a * m, 2) + pow(b * n, 2)) * 1.0 / s;
double c = (a * m) * 1.0 / (b * n);
double j = atan(c);
j = 90.0 - j * 180 / 3.141592653;
printf("%.2lf %.2lf\n", j, v);
}
return 0;
}