U E D R , A S I H C RSS

Magic Square/은지

~cpp 

#include <iostream>
using namespace std;

int main()
{
	int size;
	int i, j;

	do{					//  
					
		cout << "  () : ";
		cin >> size;
		if ( !(size%2))
			cout << "!\n";
	}while(!(size%2));				 

	int **board = new int * [size+2];	        // 2   
	for(i=0; i< size+2; i++)
		board[i] = new int [size+2];
	
	for(i=0; i<size+2; i++)			// 화
		for(j=0; j<size+2; j++)
			board[i][j] = 0;

	int num = 1;
	int row = 1;
	int mid = size / 2;
	int col = mid + 1;

	board[row][col] = num;

	while(num != size*size)			//   
	{
		row --; col ++;				//한 , 한 

		if (row == 0)			//  
			row = size;
                   				//환 
		if (col == size+1)			//  
			col = 1;			//환
                    

		if (!board[row][col])			//    
		{
			num++;					
			board[row][col] = num;	// 
	
		}

		else					//    
		{
			row ++; col --;			//   

			if (row == 0)			//  
				row = size;			//환
			if (col == size)		//  
				col = 1;			//환 

			if ( row == size && col == 1)//    
			{
				row=1; col = size;	     //   
			}

			else				 //  
			{
				row--; col++;		     // 	
			}
		
			row++;					//한  	
			num++;				
			board[row][col] = num;	//  
		}
	}

	for(i=1; i<size+1; i++)			// 
	{
		for(j=1; j<size+1; j++)
		{
			cout << board[i][j] <<"\t";
		}
		cout << "\n";
	}

	return 0;
}



Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:43
Processing time 0.0071 sec