#26889: [Python]完全沒有用到if elif else或是陣列索引的酷炫方法-complex


406490150@gms.tku.edu.tw (我是朱朱)

學校 : 國立交通大學
編號 : 139794
來源 : [140.113.236.122]
最後登入時間 :
2022-09-03 11:13:16
c315. I, ROBOT 前傳 | From: [1.172.254.147] | 發表日期 : 2021-08-30 21:10

Python內建的數字型態,除了int, float還有complex 複數!!!!

應用到這題,方向0,1,2,3剛好是順時鐘旋轉,也就是說

  • +y方向是j

  • +x方向是1

  • -y方向是-j

  • -x方向是-1

不需要用到if else,就使用虛數j的乘法特性

  • j ** (-0+1) = j

  • j ** (-1+1) = 1

  • j ** (-2+1) = -j

  • j ** (-3+1) = -1

或是你也可以自己定義喜歡的座標方式哦,反正都是二維座標系統 :D

 

答案輸出的時候,ans.real, ans.imag 就可以分別輸出x軸跟y軸的數值囉,

要注意直接產生的實數虛數real,imag是float型態,要自己手動用int()轉回int型態。

 

_______________________________________________

 

下面給大家參考程式碼,改了一下座標軸:

ans = 0

跑N次迴圈:

  direction, move = map(int, input().split())

  ans += move*(1j)**direction

列印(int(ans.虛部), int(ans.實部))

(+y軸是+1, +x軸是+j,輸出的時候ans.real是y軸、ans.imag是x軸)

 
ZeroJudge Forum