UVa 10387 - Billiard

本文介绍了解决UVa10387-Billiard问题的方法,该问题是关于在一个给定尺寸的桌面上,确定小球在经过特定次数的边碰撞后返回起点所需的速度及起始角度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

传送门UVa 10387 - Billiard

题意是在桌子中间放一个小球, 在小球碰到长x次, 宽y次之后回到原位置, 求小球的速度和起始角度.


这题看了别人的解题报告之后我还是似懂非懂, 过几天再回来看看吧.


#include <cstdio>
#include <cmath>

using namespace std;

int main()
{
    //freopen("input.txt", "r", stdin);
    register double a, b, s, m, n;
    register double A, v, path;
    while(scanf("%lf%lf%lf%lf%lf", &a, &b, &s, &m, &n))
    {
        if (a + b + s + m + n == 0)
            break;
        path = sqrt(a * a * m * m + b * b * n * n);
        v = path / s;
        A = atan((b * n) / (a * m)) * 180 / 3.1415926;
        printf("%.2f %.2f\n", A, v);
    }
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值