日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

牛客16464 神奇的幻方

發布時間:2024/7/19 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 牛客16464 神奇的幻方 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

鏈接:https://ac.nowcoder.com/acm/problem/16464
來源:牛客網

時間限制:C/C++ 1秒,其他語言2秒
空間限制:C/C++ 131072K,其他語言262144K
64bit IO Format: %lld

題目描述

幻方是一種很神奇的 N*N 矩陣:它由數字 1,2,3,…N x N 構成,且每行、每列及兩條對角線上的數字之和都相同。
當 N 為奇數時,我們可以通過下方法構建一個幻方:
首先將 1 寫在第一行的中間。
之后,按如下方式從小到大依次填寫每個數 K (K=2,3,…,N x N) :
1.若 (K-1) 在第一行但不在最后一列,則將 K 填在最后一行, (K-1) 所在列的右一列;
2.若 (K-1) 在最后一列但不在第一行,則將 K 填在第一列, (K-1) 所在行的上一行;
3.若 (K-1) 在第一行最后一列,則將 K 填在 (K-1) 的正下方;
4.若 (K-1) 既不在第一行,也最后一列,如果 (K-1) 的右上方還未填數,則將 K 填在 (K-1) 的右上方,否則將 L 填在 (K-1) 的正下方。

輸入描述:

一個正整數 N ,即幻方的大小。

輸出描述:

共 N 行 ,每行 N 個整數,即按上述方法構造出的 N x N 的幻方,相鄰兩個整數之間用單空格隔開。

N = int(input()) H = [] for i in range(N):H.append([])for j in range(N):H[i].append(0)H[0][int((N-1)/2)] = 1 for k in range(2, N**2+1):for i in range(N):for j in range(N):if k-1 == H[i][j]:if i==0 and j!=N-1:H[N-1][j+1]=kelif i!=0 and j==N-1:H[i-1][0]=kelif i==0 and j==N-1:H[i+1][j]=kelif i!=0 and j!=N-1:if H[i-1][j+1]==0:H[i-1][j+1]=kelse:H[i+1][j]=k #print(H)for i in range(N):for j in range(N):print(H[i][j], end =" ")print(" ")

總結

以上是生活随笔為你收集整理的牛客16464 神奇的幻方的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。