본문 바로가기
파이썬

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

by 드린 2016. 11. 5.

목차

    반응형
    #마방진 만들기
    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

    반응형