C_C++

(C언어) 홀수 마방진 (magic square)

고니자니 2023. 4. 9. 13:40
반응형

홀수 마방진(魔方陣, magic square)

홀수 마방진을 구하는 방법은
대각선을 숫자로 채워가면서 상하좌우에 튀어나온 숫자는 반대편으로 넘기면 됩니다.

홀수 마방진

C언어 코드

#include <stdio.h>
#define N 7       // n은 홀수

int main()
{
    int a[N + 1][N + 1], i, j, k;

    i = 0;
    j = N / 2 + 1;  // 열의 중앙 위치 
    
    for (k = 1; k <= N * N; k++) 
    {
        if (k % N == 1)
            i++;
        else 
        {
            i--; 
            j++;
        }

        if (i == 0)
            i = N;
        if (j > N)
            j = 1;

        a[i][j] = k;
    }

    for (i = 1; i <= N; i++) 
    {
        for (j = 1; j <= N; j++)
            printf("%2d ", a[i][j]);
        printf("\n");
    }

    return 0;
}

반응형