任意奇數幻方列印 Python練習系列 2

2022-09-18 17:33:10 字數 1315 閱讀 3913

練習內容:主要是對邏輯的翻譯練習

奇數幻方規律:初始位置為首行正** 依次右上方移動 上出範圍從下往上 右出範圍從左往右 如果右上已有值向下一格填

任意奇數幻方列印完整**和注釋如下

def equal_print(num):

#num>2 且 num為奇數

equal_list=[[''for n in range(num)]for n in range(num)]#列表初始化

if num%2!=1:#如果num不為奇數 返回

return print('數字必須大於2且為奇數')

y=0#y是豎軸 x是橫軸 範圍是num

x=num//2#座標初始值為equal_list[0][num//2] //表示除法運算後向小值取整

for n in range(1,num*num+1):#n是座標代表的值

equal_list[y][x]=n#賦值

y=y-1

x=x+1#座標向右上方移動

if y<0 and x>num-1:#如果豎軸方向移出了邊界 而且 橫軸方向也移出了邊界

y=y+2#豎軸值相對向下移一格

x=x-1#橫軸值相對不變

if y<0 and xnum-1 and y>-1:#如果橫軸方向移出了邊界 但 還在豎軸範圍內

x=0#橫軸值等於橫軸方向最小值 豎軸值不變

if y>-1 and xy=y+2#豎軸值相對向下移一格

x=x-1#橫軸值相對不變

#格式化列印出列表

for n in range(num):

for m in range(num):

print(str(equal_list[n][m]).zfill(len(str(num*num))),end=' ')#str.zfill(num)指定num位數填充0

print()

#檢測是否相等

detect_value_list=[0 for n in range(4)]

for n in range(num):

detect_value_list[0]+=equal_list[0][n]#橫排

detect_value_list[1]+=equal_list[n][0]#縱列

detect_value_list[2]+=equal_list[n][n]#左上至右下

detect_value_list[3]+=equal_list[n][num-n-1]#右上至左下

print(detect_value_list)

equal_print(5)

奇數階幻方

編制奇數階幻方的方法 問題如 http community.csdn.net expert topic 5698 5698866.xml?temp 1421167 簡單描述 給 1 9,9個數,擺放成 3 3 的矩陣,要求每橫排,每豎排,對角線 上 3個數字相加均為15。其中矩陣也可為5 5,7 7...

1053 奇數幻方

題目描述 幻方 magic square 是一種將數字安排在正方形格仔中,使每行 列和對角線上的數字和都相等的方法。幻方也是一種漢族傳統遊戲。在 射鵰英雄傳 中郭黃二人被裘千仞追到黑龍潭,躲進瑛姑的小屋。瑛姑出了一道題 數字1 9填到三行三列的 中,要求每行 每列 及兩條對角線上的和都相等。這道題難...

奇數幻方 輸入N得到NXN幻方

include intmain for int j 0 j1 j h j sum1 for int j 0 j1 j l j sum2 for int i 0 i 判斷每行 列相等個數 for int j 0 j1 j 計算對角線數字和 e n 1 for int i 0 i1 i 計算反對角線數字...