1. 구구단 - 1
2. 구구단 - 2
3. 구구단 - 3
여기서부터 조금 어려워진다. 별찍기의 상위호환
4. 구구단 -4
4번 정답
여기서부터는 3번의 변형이다. for문을 완전히 이해했으면 5번도 마찬가지.
| int hh = 10; // 각 라인의 첫숫자를 표시하기 위한 변수 for (int i = 4; i > 0; i--) // 4줄을 만들기위해 { for (int l = 1; l <= 9; l++) // *1~9 { for (int j = 0; j < i; j++) // 첫째줄에 4개, 둘째줄에 3개... 하기위해 { cout << hh - j << "*" << l << "=" << (hh - j)*l << "\t"; } cout << "\n"; } hh = hh - i; // 첫숫자가 4,3,2...씩 감소함 cout << "\n"; } | cs |
5. 구구단 -5
6. 최대공약수, 최소공배수 구하기
값 2개를 입력받아 최대공약수와 최소공배수를 출력한다.
6번 정답
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | int n1 = 0; int n2 = 0; int temp, g; cout << "숫자 2개를 입력하세요 :"; cin >> n1 >> n2; // 둘중작은 수를 temp에 저장 if (n1 >= n2) temp = n2; else temp = n1; for (int i = 1; i <= temp; i++) { // 두 수 모두 나머지가 0이면(둘다 약수이면) if (n1%i == 0 && n2%i == 0) { // 최대공약수는 i g = i; } } cout << "최대공약수는 " << g << "\n"; cout << "최소공배수는 " << n1 * n2 / g << "\n"; | cs |
반복하다보면 가장 큰 공약수가 g에 저장되므로 최대공약수가 된다.
최소공배수는 두수의곱 = 최대공약수*최소공배수인 점을 생각하면 쉽게 구할수 있다.