解题思路:

注意事项:解析请看这里:  https://blog.dotcpp.com/a/63859



参考代码:

#include <iostream>

#include <cmath>

#include <iomanip>

using namespace std;

 

int main() {

 

    int L, W;          // 台球桌长宽

    int x, y, R;       // 初始球心位置和台球半径

    int a, v, s;       // 初始角度,速度,经过时间

    double resX, resY; // 最终球心位置

 

    while (cin >> L >> W >> x >> y >> R >> a >> v >> s) 

    {

        if (!L) break;

 

       //构造新的台球桌

        L -= 2 * R;

        W -= 2 * R;

        x -= R;

        y -= R;

 

        double arc = a * acos(-1) / 180; // 正确的角度转弧度,公式

 

        // 球距离原点的总位移,必须取绝对值

        double length = abs(x + v * s * cos(arc));

        double width = abs(y + v * s * sin(arc));

 

        // 每移动2L实际坐标没变

        while (length > 2 * L ) { length -= 2 * L; }

        while (width > 2 * W)  { width -= 2 * W; }

 

 

        if (length <= L) { resX = length + R; } 

        else { resX = 2 * L - length + R; }


        if (width <= W) { resY = width + R; }

        else{ resY = 2 * W - width + R;}


        cout << fixed << setprecision(2) << resX << " " << resY << endl;

    } 

    return 0;

}


点赞(0)
 

0.0分

2 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论