###### tags: `程式設計` # 第七週 ## All Pass 糖登記清單 :::danger 請大家記得登入 ::: :::info 範例 >樂事洋芋片 * 100 ((10 噸)卡車) >![](https://i.imgur.com/nDdw8O3.png =150x) * 10 >[name=李漢偉][time=Mon, Oct 21, 2019 10:23 AM] >花雕雞麵 * 10(箱) >炫泡閃亮亮 cherry 青軸機械式鍵盤 * 1 >![](http://www.costco.com.tw/medias/sys_master/images/h86/hdf/10947357048862.jpg =100x) *5 >[name=歐芷欣] >彼女 *2 (手) >[name=王為棟] >可樂機 >![](https://i.imgur.com/GVYHKl6.png =200x) >[name=郭子緯] >龍の卵 >アラジンのランプ >悪魔の実 >賢者の石 >どらごんぼう >ごくのしっぽ >[name=林科佑] ::: ## 課堂練習-魔方陣 ```python= ## 奇數魔方陣 def genMagic(n): data = [[0 for j in range(n)]for i in range(n)] # 目前位置為 上方中間 # 在目前位置填入 1 curX, curY, data[curY][curX] = n // 2, 0, 1 # 接下來由 2 到 n*n 依序填入 for v in range(2, n * n + 1) : # 找到下一個位置 # 下一個位置是原來的右上方 nextX, nextY = (curX+1) % n, (curY-1) % n # 如果下個位置有數字 if data[nextY][nextX] != 0 : # 設定下個位置為現在位置的下方 nextX, nextY = curX, curY+1 # 填入數字 # 把現在的位置改成下一個位置 curX, curY, data[nextY][nextX] = nextX, nextY,v # 傳回結果 return data def main() : # 輸入 n 表示方陣的大小 rel = genMagic(int(input())) for row in rel: print(*row) # print((('{:3d}' * len(rel[0]) + '\n') * len(rel)).format(*[c for r in rel for c in r])) if __name__ == '__main__' : main() ``` ## Recursion 遞迴 殼蟻寫了 :izakaya_lantern: ```python= def A(m, n) : n + 1 if m = 0 A(m-1,1) if m > 0 nad n = 0 A(m-1,A(m,n-1)) if m > 0 and n > 0 ```