为了更好的阅读体检,可以查看我的算法学习网经典屏保
题目描述
D V D DVD DVD机在视频输出时,为了保护电视显像管,在待机状态会显示"屏保动画”,如下图所示, D V D DVD DVD L o g o Logo Logo在屏幕内来回运动,碰到边缘会反弹。
D V D ( 1 ) DVD(1) DVD(1) | D V D ( 1 ) DVD(1) DVD(1) | |||||||
D V D ( 1 ) DVD(1) DVD(1) | D V D ( 1 ) DVD(1) DVD(1) | |||||||
D V D ( 3 ) DVD(3) DVD(3) | D V D ( 3 ) DVD(3) DVD(3) | |||||||
D V D ( 3 ) DVD(3) DVD(3) | D V D ( 3 ) DVD(3) DVD(3) | |||||||
D V D ( 2 ) DVD(2) DVD(2) | D V D ( 2 ) DVD(2) DVD(2) | |||||||
D V D ( 2 ) DVD(2) DVD(2) | D V D ( 2 ) DVD(2) DVD(2) |
请根据如下要求,实现屏保 L o g o Logo Logo坐标的计算算法。
- 屏幕是一个 800 ∗ 600 800*600 800∗600像素的矩形,规定屏幕的左上角点坐标原点,沿横边向右方向为 X X X轴,沿竖边向下方向为 Y Y Y轴。
- L o g o Logo Logo是一个 50 ∗ 25 50*25 50∗25像素的矩形,初始状态下,左上角点坐标记做 ( X , y ) (X,y) (X,y),它在 X X X和 Y Y Y方向上均以 1 1 1像素/秒的速度开始运动。
- 遇到屏幕四人边缘后,会发生镜面反弹,即以 45 ° 45° 45°碰撞边缘,再改变方向以 45 ° 45° 45°弹出。
- 当 L o g o Logo Logo和四个角碰撞时,两个边缘同时反弹的效果是 L o g o Logo Logo会原路返回。
( 0 , 0 ) (0,0) (0,0) | 800 800 800 | x 轴 x轴 x轴 | |||||||
---|---|---|---|---|---|---|---|---|---|
L o g o ( 1 ) Logo(1) Logo(1) | L o g o ( 1 ) Logo(1) Logo(1) | ||||||||
600 600 600 | L o g o ( 1 ) Logo(1) Logo(1) | L o g o ( 1 ) Logo(1) Logo(1) | |||||||
L o g o ( 3 ) Logo(3) Logo(3) | L o g o ( 3 ) Logo(3) Logo(3) | ||||||||
L o g o ( 3 ) Logo(3) Logo(3) | L o g o ( 3 ) Logo(3) Logo(3) | ||||||||
L o g o ( 2 ) Logo(2) Logo(2) | L o g o ( 2 ) Logo(2) Logo(2) | ||||||||
y 轴 y轴 y轴 | L o g o ( 2 ) Logo(2) Logo(2) | L o g o ( 2 ) Logo(2) Logo(2) |
请编码实现, t t t秒后 L o g o Logo Logo左上角点的坐标。
输入描述
输入 3 3 3个数字,以空格分隔;
x y t
第一个数字表示 L o g o Logo Logo左上角点的初始 X X X坐标;
第二个数字表示 L o g o Logo Logo左上角点的初始 Y Y Y坐标;
第三个数字表示时间 t t t,题目要求即求 t t t秒后 L o g o Logo Logo左上角点的位置。
输出描述
输出 2 2 2个数字,以空格分隔:
X y
第一个数字表示 t t t秒后, L o g o Logo Logo左上角点的 x x x坐标
第二个数字表示 t t t秒后, L o g o Logo Logo左上角点的 y y y坐标
备注
所有用例均保证:
- 输入的 x x x和 y y y坐标会保证整个 L o g o Logo Logo都在屏幕范围内, L o g o Logo Logo不会出画;
- 所有输入数据都是合法的数值,且不会出现负数:
- t t t的最大值为 100000 100000 100000。
样例
输入
0 0 10
输出
10 10
说明
输入样例表示 L o g o Logo Logo初始位置在屏幕的左上角点, 10 s 10s 10s后, L o g o Logo Logo在 X X X和 Y Y Y方向都移动了 10 10 10像素,因此输出 10 10 10 10 10 10。
输入
500 570 10
输出
510 570
说明
输入样例表示初始状态下,
L
o
g
o
Logo
Logo的下边缘再有
5
5
5像素就碰到屏幕下边缘了,
5
s
5s
5s后,会与屏幕碰撞,碰撞后,斜向
45
45
45弹出,又经过
5
s
5s
5s后,
L
o
g
o
Logo
Logo与起始位置相比,水平移动了
10
10
10像素,垂直方向回到了原来的高度。
题目内容均收集自互联网,如若此项内容侵犯了原著者的合法权益,可联系我: (CSDN网站注册用户名: 塔子哥学算法) 进行删除