練習內容:主要是對邏輯的翻譯練習
奇數幻方規律:初始位置為首行正** 依次右上方移動 上出範圍從下往上 右出範圍從左往右 如果右上已有值向下一格填
任意奇數幻方列印完整**和注釋如下
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 計算反對角線數字...