마방진,.

~cpp 
#include <iostream>
using namespace std;

void main()
{
	int array[19][19];
	int size,row,col;
	int oRow,oCol;
	do
	{	
		cout << "마방진 크기 : ";
		cin >> size; 
	}while(size % 2 != 1);
	
	
	for(int setx = 0; setx < size; setx++)
	{
		for(int sety =0; sety < size; sety++)
		{
			array[setx][sety] = 0;
		}
	}
	row = 0;
	col = size / 2 ;

	array[row][col] = 1;
	for(int cnt = 2; cnt <= (size * size); cnt++)
	{
		oRow = row;
		oCol = col;
		if( (row == 0) && (col == size-1) ) 
		{
			col = 0;
			row = size-1;
		}
		else if (row == 0)
		{
			row = size-1;
			col += 1;
		}
		else if (col == size-1)
		{
			col = 0;
			row -= 1;
		}
		else
		{
			col += 1;
			row -= 1;
		}

		if(array[row][col] != 0) 
		{
			if(row == size-1) 
			{
				row = oRow + 1;
				col = oCol;
			}
			else
			{
				row = oRow + 1;
				col = oCol;
			}
		}

		array[row][col] = cnt;
	}
	for(int x = 0; x < size; x++)
	{
		for(int y =0; y < size; y++)
		{
			cout << array[x][y] << "\t";
		}
		cout << endl;
	}


}



Retrieved from http://wiki.zeropage.org/wiki.php/마방진/문원명
last modified 2021-02-07 05:29:24