解题思路:
注意事项:解析请看这里: 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分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复