1. 마방진 문제 ¶
가로, 세로, 대각선의 각각의 칸에 들어가는 숫자들의 합이 같은 정사각형 만들기
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 식으로 홀수크기가 쉬울테니 홀수로해
힌트를 주자면 위 정사각형안의 숫자들의 규칙을 살벼봐 - 민수
힌트를 주자면 위 정사각형안의 숫자들의 규칙을 살벼봐 - 민수
- 무슨 말인지 모르겠다.ㅡㅡ 흠.. - 일정
- 형~ 매우 고난이도 같아요- -; - 주영
- 질문!!! 저기 써져 있는대로 똑같이 하는건가요?? 아니면 숫자를 입력받아서 하는건가요? - 승균
- 숫자를 입력 받다니?? 저런식으로 숫자를 출력하면 되~ - 민수
- 숫자를 입력 받다니?? 저런식으로 숫자를 출력하면 되~ - 민수
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; }
했지만서도 야바위같은 느낌을 떨쳐버릴수가 없어요.; 이미 한행의 합을 알고 가운데 숫자를 알고 만든 거니..--;
- 그래도 하긴했네~ 숙제 끝나고 나도 도전해봐야지..~ 이야~ -일정
- 쿠쿠 멋진놈 벌써 하다니...배열을 사용했군 - 승균
- 야메야메야메야메~~ -정욱