華為OD機(jī)試- 經(jīng)典屏保
DVD機(jī)在視頻輸出時(shí),為了保護(hù)電視顯像管,在待機(jī)狀態(tài)會顯示“屏保動畫”,如下圖所示,DVD Logo在屏幕內(nèi)來回運(yùn)動,碰到邊緣會反彈:
請根據(jù)如下要求,實(shí)現(xiàn)屏保Logo坐標(biāo)的計(jì)算算法
1、屏幕是一個(gè)800*600像素的矩形,規(guī)定屏幕的左上角點(diǎn)坐標(biāo)原點(diǎn),沿橫邊向右方向?yàn)閄軸,沿豎邊向下方向?yàn)閅軸
2、Logo是一個(gè)50*25像素的矩形,初始狀態(tài)下,左上角點(diǎn)坐標(biāo)記做(x,),它在X和Y方向上均以1像素/秒的速
度開始運(yùn)動;
3、遇到屏幕四個(gè)邊緣后,會發(fā)生鏡面反彈,即以45°碰撞邊緣,再改變方向以45°彈出:
當(dāng)Logo和四個(gè)角碰撞時(shí),兩個(gè)邊緣同時(shí)反彈的效果是Logo會原路返回。

請編碼實(shí)現(xiàn),t秒后Logo左上角點(diǎn)的坐標(biāo)
輸入描述:
輸入3個(gè)數(shù)字,以空格分隔:
x y t
第一個(gè)數(shù)字表示Logo左上角點(diǎn)的初始X坐標(biāo)
第二個(gè)數(shù)字表示Logo左上角點(diǎn)的初始Y坐標(biāo):
第三個(gè)數(shù)字表示時(shí)間t,題目要求即求t秒后Logo左上角點(diǎn)的位置
輸出描述
輸出2個(gè)數(shù)字,以空格分隔:
x y
第一個(gè)數(shù)字表示t秒后,Logo左上角點(diǎn)的X坐標(biāo)第二個(gè)數(shù)字表示t秒后,Logo左上角點(diǎn)的Y坐標(biāo)
補(bǔ)充說明:
所有用例均保證:
1、輸入的x和y坐標(biāo)會保證整個(gè)Logo都在屏幕范圍內(nèi),Logo不會出畫;2、所有輸入數(shù)據(jù)都是合法的數(shù)值,且不會出現(xiàn)負(fù)數(shù):
3、t的最大值為100000。
?示例1
輸入:
0 0 10
輸出:
10 10
說明:
輸入樣例表示Logo初始位置在屏幕的左上角點(diǎn),10s后,Logo在X和Y方向都移動了10像素,因此輸出10 10.
示例2
輸入:
500 570 10
輸出:
510 570
說明:
輸入樣例表示初始狀態(tài)下,Loo的下邊緣再有5像素就碰到屏幕下邊緣了,5s后,會與屏幕碰撞,碰撞后,斜向45”彈出,又經(jīng)過5s后,Logo與起始位置相比,水平移動了10像素,垂直方向回到了原來的高度。
Java 實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/130957476
Python實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/130977587
C++ 實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/131023638
JavaScript實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/131080310
C實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/131147537