||[[TableOfContents]]|| == 마방진 문제 == 가로, 세로, 대각선의 각각의 칸에 들어가는 숫자들의 합이 같은 정사각형 만들기 ||8||1||6|| ||3||5||7|| ||4||9||2|| {{{~cpp 위의 마방진의 규칙은 첫째열 중간칸을 1로 시작하여 오른쪽 위 대각선으로 이동하면서 1씩증가하는 것입니다. 오른쪽 위 대각선의 칸에 숫자가 있을경우 아래로 이동합니다. 다시 오른쪽 위 대각선으로 이동합니다. }}} ||6||1||8|| ||7||5||3|| ||2||9||4|| ||3||20||7||24||11|| ||16||8||25||12||4|| ||9||21||13||5||17|| ||22||14||1||18||10|| ||15||2||19||6||23|| 이런 마방진도 있네요 이런 사각형이 마방진이야~ 3 X 3 이나 5 X 5 식으로 홀수크기가 쉬울테니 홀수로해 힌트를 주자면 위 정사각형안의 숫자들의 규칙을 살벼봐 - 민수 ----- * 무슨 말인지 모르겠다.ㅡㅡ 흠.. - 일정 * 형~ 매우 고난이도 같아요- -; - 주영 * 질문!!! 저기 써져 있는대로 똑같이 하는건가요?? 아니면 숫자를 입력받아서 하는건가요? - 승균 * 숫자를 입력 받다니?? 저런식으로 숫자를 출력하면 되~ - 민수 - 아님 무대뽀(BruteForce)하게 [Backtracking]을 이용해도 될듯.. - [임인택] ---- === 유주영 === {{{~cpp #include 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; } }}} 했지만서도 야바위같은 느낌을 떨쳐버릴수가 없어요.; 이미 한행의 합을 알고 가운데 숫자를 알고 만든 거니..--; * 그래도 하긴했네~ 숙제 끝나고 나도 도전해봐야지..~ 이야~ -일정 * 쿠쿠 멋진놈 벌써 하다니...배열을 사용했군 - 승균 * 야메야메야메야메~~ -정욱 [빵페이지]