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
- 5행과 7행으로 실행-

 


마무리

모든 행수의 마방진을 확인 가능한 프로그램을 코딩해보았다.

모르는 사람한테 지식 자랑하기 좋을 것 같다.

 

 

반응형

'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