台球桌难题!球按此条件运动,速度和出发角度怎么求?

/*题意是给一张台球桌。一个球从台球桌中心发出。给出桌子的长宽(a,b)。和在长边和宽边上碰撞的次数(m,n),球回到起点的时间。

求球运动的速度和出发时和水平方向的角度。

这是一种对称行的问题。

b*n/2为竖直方向上运动的竖直总路程。

a*m/2为水平方向的。

因为水平碰撞2次,必定走了一段竖直距离。

二者之比为角度的正切。

注意角度和弧度的转化。

而总路程还要除以相应的正弦和余弦。

*/

#include 
#include 
#define PI 3.14159265358979
int main()
{
    double a,b,s,m,n;
    while(scanf("%lf%lf%lf%lf%lf",&a,&b,&s,&m,&n)==5)
    {
        if(a+b+s+m+n==0) break;
        double cc=(b*n)/(a*m);
        double d=atan(cc);
        double sum=(a*m/cos(d)+b*n/sin(d))*0.5;
        double v=sum/s;
        printf("%.2lf %.2lfn",double(d*180.0/PI),v);
    }
    return 0;
}

云衔科技是一家专注于企业数字化广告营销解决方案的服务商。公司凭借深厚的行业经验和专业技术能力,致力于为企业客户提供全方位、更高效的数字化广告营销与运营服务。

发表回复