IT/Python
[Python] 마방진 자동 생성
잿호
2023. 9. 6. 22:00
마방진이란?
자연수를 정사각형 모양으로 나열하여 가로, 세로, 대각선의 합이 모두 같아진 형태를 말합니다.
코드
mabangjin = []
ma = int(input('행수를 입력하세요. : '))
for i in range(ma):
mabangjin.append([])
for j in range(ma):
mabangjin[i].append(0)
x = 0
y = int((ma-1)/2)
for cnt in range(1, ma*ma+1):
mabangjin[x][y] = cnt
x = x - 1
y = y + 1
if x < 0 and y >= ma:
x = x + 2
y = y - 1
elif x < 0 :
x = ma - 1
elif y == ma:
y = 0
elif mabangjin[x][y] != 0:
x = x + 2
y = y - 1
for i in range(ma) :
for j in range(ma):
print("{:3d}".format(mabangjin[i][j]), end=' ')
print()
실행 결과
01
마무리
모든 행수의 마방진을 확인 가능한 프로그램을 코딩해보았다.
모르는 사람한테 지식 자랑하기 좋을 것 같다.
반응형