U E D R , A S I H C RSS

빵페이지/마방진


1. 마방진 문제


가로, 세로, 대각선의 각각의 칸에 들어가는 숫자들의 합이 같은 정사각형 만들기

816
357
492

~cpp 
  위의 마방진의 규칙은 첫째열 중간칸을 1로 시작하여 오른쪽 위 대각선으로 이동하면서 1씩증가하는 것입니다.
  오른쪽 위 대각선의 칸에 숫자가 있을경우 아래로 이동합니다.  다시 오른쪽 위 대각선으로 이동합니다.

618
753
294


32072411
16825124
92113517
221411810
15219623
이런 마방진도 있네요


이런 사각형이 마방진이야~ 3 X 3 이나 5 X 5 식으로 홀수크기가 쉬울테니 홀수로해
힌트를 주자면 위 정사각형안의 숫자들의 규칙을 살벼봐 - 민수



  • 무슨 말인지 모르겠다.ㅡㅡ 흠.. - 일정
  • 형~ 매우 고난이도 같아요- -; - 주영
  • 질문!!! 저기 써져 있는대로 똑같이 하는건가요?? 아니면 숫자를 입력받아서 하는건가요? - 승균
    • 숫자를 입력 받다니?? 저런식으로 숫자를 출력하면 되~ - 민수
      - 아님 무대뽀(BruteForce)하게 Backtracking을 이용해도 될듯.. - 임인택



1.1. 유주영

~cpp 
#include <iostream>
using namespace std;
int main()
{
	int mbj[3][3];
	int c_1,c_2;
	int a,b;
	const int c = 15; // 3*3마방진의 각 줄의 합 
	cout << "3*3 마방진을 만듭니다. 형태결정을 위해 2개의 수를 입력받습니다.\n\n"
		 << "2,4,6,8 중 하나의 수를 입력하세요.(1-1숫자결정) : ";
	cin	 >> c_1;
	
		
	if(c_1==2 || c_1==8)
		a=4; b=6;
	if (c_1==4 || c_1==6)
		a=2; b=8;
	

	cout << a << "," << b << " 중 하나의 수를 입력하세요.(1-3숫자결정) : ";
	cin >> c_2;

	mbj[1][1]=5;
	mbj[0][0]=c_1;
	mbj[0][2]=c_2;
	mbj[0][1]=c - mbj[0][0] - mbj[0][2];
	mbj[2][2]=c - mbj[1][1] - mbj[0][0];
	mbj[1][2]=c - mbj[0][2] - mbj[2][2];
	mbj[1][0]=c - mbj[1][1] - mbj[1][2];
	mbj[2][0]=c - mbj[0][0] - mbj[1][0];
	mbj[2][1]=c - mbj[0][1] - mbj[1][1];


	cout << "\n";
	for(int row=0;row<3;row++)
	{
		for(int col=0;col<3;col++)
			cout << mbj[row][col] << "   ";
		cout << "\n\n";
	}
	return 0;
}
했지만서도 야바위같은 느낌을 떨쳐버릴수가 없어요.; 이미 한행의 합을 알고 가운데 숫자를 알고 만든 거니..--;
  • 그래도 하긴했네~ 숙제 끝나고 나도 도전해봐야지..~ 이야~ -일정
  • 쿠쿠 멋진놈 벌써 하다니...배열을 사용했군 - 승균
  • 야메야메야메야메~~ -정욱
빵페이지
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2009-05-27 07:09:19
Processing time 0.0975 sec