======C++ 스터디 #3: 구구단 출력하기======
| 시간 | 2021년 4월 1일 목요일 20:30 ~ 22:10 |
| 장소 | Google Meet |
| 참가자 | 홍제준, 윤호연, 최원섭, 강동륜, 김도균, 김석호, 김진우, 류지원, 박경민, 심훈용, 안영현, 오성근, 우재원, 이언상, 임승환, 정대영, 정인하, 정지웅, 최민재, 함영석 |
{{youtube>gFptg9RttY0?medium}}
=====1. 구구단 출력 예제=====
====1.1. 구구단 2단 출력하기====
구구단 2단을 출력하는 프로그램 작성하기
\\
**출력**
출력 예시처럼 2 x 1 부터 2 x 9 까지 출력한다.
\\
**출력 예시**
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
\\
**코드**
#include
using namespace std;
int main() {
for (int i = 1; i <= 9; i++)
cout << "2 x " << i << " = " << 2 * i << endl;
return 0;
}
====1.2. 숫자를 입력받아 원하는 단 출력하기====
정수 N을 입력받아 구구단 N단을 출력하는 프로그램 작성하기
\\
**입력**
첫째 줄에 N이 주어진다.
\\
**출력**
입출력 예시처럼 N x 1 부터 N x 9 까지 출력한다.
\\
**입출력 예시**
Enter a number : 5
5 x 1 = 5
5 x 2 = 10
5 x 3 = 15
5 x 4 = 20
5 x 5 = 25
5 x 6 = 30
5 x 7 = 35
5 x 8 = 40
5 x 9 = 45
\\
**코드**
#include
using namespace std;
int main() {
int n;
cout << "Enter a number : ";
cin >> n;
for (int i = 1; i <= 9; i++)
cout << n << " x " << i << " = " << n * i << endl;
return 0;
}
====1.3. 구구단 전부 출력하기====
구구단 전체를 출력하는 프로그램 작성하기
\\
**출력**
출력 예시처럼 2 x 1 부터 9 x 9 까지 출력한다.
\\
※ 탭(''\t'') 문자 사용하기
\\
**출력 예시**
2 x 1 = 2 3 x 1 = 3 4 x 1 = 4 5 x 1 = 5 6 x 1 = 6 7 x 1 = 7 8 x 1 = 8 9 x 1 = 9
2 x 2 = 4 3 x 2 = 6 4 x 2 = 8 5 x 2 = 10 6 x 2 = 12 7 x 2 = 14 8 x 2 = 16 9 x 2 = 18
2 x 3 = 6 3 x 3 = 9 4 x 3 = 12 5 x 3 = 15 6 x 3 = 18 7 x 3 = 21 8 x 3 = 24 9 x 3 = 27
2 x 4 = 8 3 x 4 = 12 4 x 4 = 16 5 x 4 = 20 6 x 4 = 24 7 x 4 = 28 8 x 4 = 32 9 x 4 = 36
2 x 5 = 10 3 x 5 = 15 4 x 5 = 20 5 x 5 = 25 6 x 5 = 30 7 x 5 = 35 8 x 5 = 40 9 x 5 = 45
2 x 6 = 12 3 x 6 = 18 4 x 6 = 24 5 x 6 = 30 6 x 6 = 36 7 x 6 = 42 8 x 6 = 48 9 x 6 = 54
2 x 7 = 14 3 x 7 = 21 4 x 7 = 28 5 x 7 = 35 6 x 7 = 42 7 x 7 = 49 8 x 7 = 56 9 x 7 = 63
2 x 8 = 16 3 x 8 = 24 4 x 8 = 32 5 x 8 = 40 6 x 8 = 48 7 x 8 = 56 8 x 8 = 64 9 x 8 = 72
2 x 9 = 18 3 x 9 = 27 4 x 9 = 36 5 x 9 = 45 6 x 9 = 54 7 x 9 = 63 8 x 9 = 72 9 x 9 = 81
\\
**코드**
#include
using namespace std;
int main() {
for (int i = 1; i <= 9; i++) {
for (int j = 2; j <= 9; j++)
cout << j << " x " << i << " = " << j * i << "\t";
cout << endl;
}
return 0;
}
====1.4. N-M단 출력하기====
정수 두 개를 입력받아 N-M단을 출력하는 프로그램 작성하기
\\
**입력**
첫째 줄에 N과 M이 주어진다.
\\
**출력**
입출력 예시처럼 2 x 1 부터 N x M 까지 출력한다.
\\
**입출력 예시**
Enter N and M : 4 7
2 x 1 = 2 3 x 1 = 3 4 x 1 = 4
2 x 2 = 4 3 x 2 = 6 4 x 2 = 8
2 x 3 = 6 3 x 3 = 9 4 x 3 = 12
2 x 4 = 8 3 x 4 = 12 4 x 4 = 16
2 x 5 = 10 3 x 5 = 15 4 x 5 = 20
2 x 6 = 12 3 x 6 = 20 4 x 6 = 24
2 x 7 = 14 3 x 7 = 25 4 x 7 = 28
\\
**코드**
#include
using namespace std;
int main() {
int n, m;
cout << "Enter N and M : ";
cin >> n >> m;
for (int i = 1; i <= m; i++) {
for (int j = 2; j <= n; j++)
cout << j << " x " << i << " = " << j * i << "\t";
cout << endl;
}
return 0;
}
====1.5. 홀수단은 거꾸로 출력하기====
구구단에서 홀수단은 거꾸로 출력하는 프로그램 작성하기
\\
**출력**
출력 예시처럼 2 x 1 부터 9 x 9 까지 출력한다.\\
홀수단은 N x 9 부터 N x 1 까지 거꾸로 출력한다.
\\
**출력 예시**
2 x 1 = 2 3 x 9 = 27 4 x 1 = 4 5 x 9 = 45 6 x 1 = 6 7 x 9 = 63 8 x 1 = 8 9 x 9 = 81
2 x 2 = 4 3 x 8 = 24 4 x 2 = 8 5 x 8 = 40 6 x 2 = 12 7 x 8 = 56 8 x 2 = 16 9 x 8 = 72
2 x 3 = 6 3 x 7 = 21 4 x 3 = 12 5 x 7 = 35 6 x 3 = 18 7 x 7 = 49 8 x 3 = 24 9 x 7 = 63
2 x 4 = 8 3 x 6 = 18 4 x 4 = 16 5 x 6 = 30 6 x 4 = 24 7 x 6 = 42 8 x 4 = 32 9 x 6 = 54
2 x 5 = 10 3 x 5 = 15 4 x 5 = 20 5 x 5 = 25 6 x 5 = 30 7 x 5 = 35 8 x 5 = 40 9 x 5 = 45
2 x 6 = 12 3 x 4 = 12 4 x 6 = 24 5 x 4 = 20 6 x 6 = 36 7 x 4 = 28 8 x 6 = 48 9 x 4 = 36
2 x 7 = 14 3 x 3 = 9 4 x 7 = 28 5 x 3 = 15 6 x 7 = 42 7 x 3 = 21 8 x 7 = 56 9 x 3 = 27
2 x 8 = 16 3 x 2 = 6 4 x 8 = 32 5 x 2 = 10 6 x 8 = 48 7 x 2 = 14 8 x 8 = 64 9 x 2 = 18
2 x 9 = 18 3 x 1 = 3 4 x 9 = 36 5 x 1 = 5 6 x 9 = 54 7 x 1 = 7 8 x 9 = 72 9 x 1 = 9
\\
**코드**
#include
using namespace std;
int main() {
for (int i = 1; i <= 9; i++) {
for (int j = 2; j <= 9; j ++) {
if (j % 2 == 0) cout << j << " x " << i << " = " << j * i << "\t";
else cout << j << " x " << 10 - i << " = " << j * (10 - i) << "\t";
}
cout << endl;
}
return 0;
}
====1.6. 홀수단만, 짝수단만 출력하기====
문자열과 정수를 입력받아 홀수단만 혹은 짝수단만 N개 출력하는 프로그램 작성하기
\\
**입력**
첫째 줄에 N과 문자열이 주어진다.
\\
**출력**
입력받은 문자열이 “odd”면 홀수단만, “even”이면 짝수단만 2단부터 N번째 단까지 출력한다.
\\
※ 문자열의 자료형은 ''string''
\\
**입출력 예시**
Enter parity and a number : odd 3
3 x 1 = 3 5 x 1 = 5 7 x 1 = 7
3 x 2 = 6 5 x 2 = 10 7 x 2 = 14
3 x 3 = 9 5 x 3 = 15 7 x 3 = 21
3 x 4 = 12 5 x 4 = 20 7 x 4 = 28
3 x 5 = 15 5 x 5 = 25 7 x 5 = 35
3 x 6 = 18 5 x 6 = 30 7 x 6 = 42
3 x 7 = 21 5 x 7 = 35 7 x 7 = 49
3 x 8 = 24 5 x 8 = 40 7 x 8 = 56
3 x 9 = 27 5 x 9 = 45 7 x 9 = 63
\\
**코드 (1)**
#include
using namespace std;
int main() {
int n;
string word;
cout << "Enter parity and a number : ";
cin >> word >> n;
if (word == "odd") {
for (int i = 1; i <= 9; i++) {
for (int j = 3; j <= 2 * n + 1; j += 2)
cout << j << " x " << i << " = " << j * i << "\t";
cout << endl;
}
}
else if (word == "even") {
for (int i = 1; i <= 9; i++) {
for (int j = 2; j <= 2 * n; j += 2)
cout << j << " x " << i << " = " << j * i << "\t";
cout << endl;
}
}
else cout << "The word entered is neither odd nor even!" << endl;
return 0;
}
\\
**코드 (2)**
#include
using namespace std;
int main() {
int n, parity = -1;
string word;
cout << "Enter parity and a number : ";
cin >> word >> n;
if (word == "odd") parity = 0;
else if (word == "even") parity = 1;
if (parity == -1) {
cout << "The word entered is neither odd nor even!" << endl;
return 0;
}
for (int i = 1; i <= 9; i++) {
for (int j = 2; j <= 2 * n + 1; j ++) {
if (j % 2 == parity) continue;
cout << j << " x " << i << " = " << j * i << "\t";
}
cout << endl;
}
return 0;
}
=====2. 더 알아보기=====
====2.1. setw()====
* setw(N) 함수는 N칸 만큼 공간을 확보하고 오른쪽 정렬하여 문자를 출력한다.
* 나머지 공간은 공백으로 채워진다.
* iomanip 헤더 파일을 포함시켜야 사용할 수 있다.
* cout과 함께 사용한다.
\\
**예제**
#include
#include
using namespace std;
int main() {
cout << 1234567 << endl;
cout << setw(4) << 4 << endl;
cout << setw(7) << "abc";
return 0;
}
\\
**출력**
1234567
4
abc
====2.2. setw()를 이용하여 구구단 출력하기====
**예제**
#include
#include
using namespace std;
int main() {
for (int i = 1; i <= 9; i++) {
for (int j = 2; j <= 11; j++)
cout << j << " x " << i << " = " << j * i << "\t";
cout << endl;
}
cout << endl;
for (int i = 1; i <= 9; i++) {
for (int j = 2; j <= 11; j++)
cout << j << " x " << i << " = " << setw(5) << left << j * i;
cout << endl;
}
return 0;
}
\\
**출력**
2 x 1 = 2 3 x 1 = 3 4 x 1 = 4 5 x 1 = 5 6 x 1 = 6 7 x 1 = 7 8 x 1 = 8 9 x 1 = 9
2 x 2 = 4 3 x 2 = 6 4 x 2 = 8 5 x 2 = 10 6 x 2 = 12 7 x 2 = 14 8 x 2 = 16 9 x 2 = 18
2 x 3 = 6 3 x 3 = 9 4 x 3 = 12 5 x 3 = 15 6 x 3 = 18 7 x 3 = 21 8 x 3 = 24 9 x 3 = 27
2 x 4 = 8 3 x 4 = 12 4 x 4 = 16 5 x 4 = 20 6 x 4 = 24 7 x 4 = 28 8 x 4 = 32 9 x 4 = 36
2 x 5 = 10 3 x 5 = 15 4 x 5 = 20 5 x 5 = 25 6 x 5 = 30 7 x 5 = 35 8 x 5 = 40 9 x 5 = 45
2 x 6 = 12 3 x 6 = 18 4 x 6 = 24 5 x 6 = 30 6 x 6 = 36 7 x 6 = 42 8 x 6 = 48 9 x 6 = 54
2 x 7 = 14 3 x 7 = 21 4 x 7 = 28 5 x 7 = 35 6 x 7 = 42 7 x 7 = 49 8 x 7 = 56 9 x 7 = 63
2 x 8 = 16 3 x 8 = 24 4 x 8 = 32 5 x 8 = 40 6 x 8 = 48 7 x 8 = 56 8 x 8 = 64 9 x 8 = 72
2 x 9 = 18 3 x 9 = 27 4 x 9 = 36 5 x 9 = 45 6 x 9 = 54 7 x 9 = 63 8 x 9 = 72 9 x 9 = 81
2 x 1 = 2 3 x 1 = 3 4 x 1 = 4 5 x 1 = 5 6 x 1 = 6 7 x 1 = 7 8 x 1 = 8 9 x 1 = 9
2 x 2 = 4 3 x 2 = 6 4 x 2 = 8 5 x 2 = 10 6 x 2 = 12 7 x 2 = 14 8 x 2 = 16 9 x 2 = 18
2 x 3 = 6 3 x 3 = 9 4 x 3 = 12 5 x 3 = 15 6 x 3 = 18 7 x 3 = 21 8 x 3 = 24 9 x 3 = 27
2 x 4 = 8 3 x 4 = 12 4 x 4 = 16 5 x 4 = 20 6 x 4 = 24 7 x 4 = 28 8 x 4 = 32 9 x 4 = 36
2 x 5 = 10 3 x 5 = 15 4 x 5 = 20 5 x 5 = 25 6 x 5 = 30 7 x 5 = 35 8 x 5 = 40 9 x 5 = 45
2 x 6 = 12 3 x 6 = 18 4 x 6 = 24 5 x 6 = 30 6 x 6 = 36 7 x 6 = 42 8 x 6 = 48 9 x 6 = 54
2 x 7 = 14 3 x 7 = 21 4 x 7 = 28 5 x 7 = 35 6 x 7 = 42 7 x 7 = 49 8 x 7 = 56 9 x 7 = 63
2 x 8 = 16 3 x 8 = 24 4 x 8 = 32 5 x 8 = 40 6 x 8 = 48 7 x 8 = 56 8 x 8 = 64 9 x 8 = 72
2 x 9 = 18 3 x 9 = 27 4 x 9 = 36 5 x 9 = 45 6 x 9 = 54 7 x 9 = 63 8 x 9 = 72 9 x 9 = 81