반응형
#마방진 만들기 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
반응형
'파이썬' 카테고리의 다른 글
파이썬 소스코드: 유클리드(Euclid - Recursion) 최대공약수 구하기 (0) | 2016.11.05 |
---|---|
파이썬 소스코드: 유클리드(Euclid - Iteration) 최대공약수 구하기 (0) | 2016.11.05 |
파이썬 소스코드: 입력한 정수의 소수 출력 (0) | 2016.11.05 |
파이썬 소스코드: 피보나치 수열 10번 반복 합계 출력 (0) | 2016.11.05 |
파이썬 소스코드: 문자열의 여러가지 서식(String format) (0) | 2016.10.03 |