UVA 10387

来源:互联网 发布:win10网络不可用红叉 编辑:程序博客网 时间:2024/06/05 14:13

题目大意:一个台球桌,水平的为长板,长度为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.141592653using 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;}
原创粉丝点击