파이썬

파이썬 소스코드: 마방진 만들기(홀수 정방행렬)

드린 2016. 11. 5. 22:52
반응형
#마방진 만들기
n=int(input("마방진을 위한 정방행렬의 행을 입력하시오:(홀수만)"));#홀수 정방행렬만 가능

arr=[]#배열 생성
for i in range(n):#n개만큼의 이차원배열 생성을 위한 루프
    arr.append([0]*n);#0으로 초기화

#시작을 위한 위치 설정
sx=0;
sy=int(n/2);
#시작위치에 1을 넣고 시작
arr[sx][sy]=1;

#오른쪽, 위의 위치에 값이 있을경우 되돌아오기위해 위치를 넣을 변수 생성
x=0;
y=0;

#마방진 생성 루프
for i in range(2,n*n+1):
    x=sx;
    y=sy;

    sx-=1;
    sy+=1;

    if(sx<0):
        sx=n-1;

    if(sy>n-1):
        sy=0;

    if(arr[sx][sy]==0):
        arr[sx][sy]=i;
    else:
        sx=x+1;
        sy=y;
        arr[sx][sy]=i;
#마방진 출력 루프
for i in range(0,n):
    for j in range(0,n):
        print("%2d" %arr[i][j], end=" ");
    print();

<결과>

2016/11/05 - [파이썬] - 파이썬 소스코드: 입력한 정수의 소수 출력

2016/11/05 - [파이썬] - 파이썬 소스코드: 피보나치 수열 10번 반복 합계 출력

2016/10/03 - [파이썬] - 파이썬 소스코드: 문자열의 여러가지 서식(String format)

#파이썬 #파이썬 소스코드 #마방진 만들기 #홀수 정방행렬 #magicsquare

반응형