마방진이란?
자연수를 정사각형 모양으로 나열하여 가로, 세로, 대각선의 합이 모두 같아진 형태를 말합니다.
코드
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
마무리
모든 행수의 마방진을 확인 가능한 프로그램을 코딩해보았다.
모르는 사람한테 지식 자랑하기 좋을 것 같다.
반응형
'IT > Python' 카테고리의 다른 글
[Python] 사람인 취업공고 엑셀정리 (31) | 2023.09.11 |
---|---|
[Python] 바이오리듬 (30) | 2023.09.10 |
[Python] 글에 사용된 단어 수 세기 (0) | 2023.09.09 |
[Python] 이름 자동생성 (1) | 2023.09.07 |
[Python] 숫자야구 (0) | 2023.09.05 |