-
JUNGOL 기초다지기 08 반복제어문3보관함 2019. 11. 24. 16:37
프로그래밍에서 가장 기초적인 내용을 다루는 기초 다지기입니다.
이번 포스팅은 기초 다지기 중 여덟 번째인 반복제어문3 문제를 풀어보도록 하겠습니다.
기초 내용인 만큼 다른 설명없이 문제와 코드만 간단하게 작성하도록 하겠습니다.
549 : 반복제어문3 - 자가진단1
#include <iostream> using namespace std; int main(void) { int n; cin >> n; int count = 0, sum = 0; for (int i = 1; i <= n && sum < n; i += 2, count++) { sum += i; } cout << count << ' ' << sum << endl; }
634 : 반복제어문3 - 자가진단2
#include <iostream> using namespace std; int main(void) { int n; cin >> n; for (int i = 1; i <= n; ++i) { for (int j = 0; j < i; ++j) { cout << '*'; } cout << endl; } }
550 : 반복제어문3 - 자가진단3
이런식의 문제는 문제를 나눠서 생각하면 쉽게 해결이 가능합니다. 이 문제는 위, 아래로 나눌 수 있습니다.
#include <iostream> using namespace std; int main(void) { int n; cin >> n; // 위 for (int i = n; i >= 1; --i) { for (int j = 0; j < i; ++j) { cout << '*'; } cout << endl; } // 아래 for (int i = 1; i <= n; ++i) { for (int j = 0; j < i; ++j) { cout << '*'; } cout << endl; } }
551 : 반복제어문3 - 자가진단4
이 문제도 마찬가지로 공백을 찍는 부분과 실제 별을 찍는 부분을 나눠서 생각하면 됩니다.
#include <iostream> using namespace std; int main(void) { int n; cin >> n; for (int i = n; i >= 1; --i) { // 공백 for (int j = n - i; j >= 1; --j) { cout << ' '; } // 별 for (int j = 1; j <= i; ++j) { cout << '*'; } cout << endl; } }
552 : 반복제어문3 - 자가진단5
자가진단4와 동일한 문제입니다. 다만 별의 개수가 단계마다 2n - 1 만큼으로 진행된다는 점만 유의하면 됩니다.
#include <iostream> using namespace std; int main(void) { int n; cin >> n; for (int i = n; i >= 1; --i) { // 공백 for (int j = n - i; j >= 1; --j) { cout << ' '; } // 별 for (int j = 1; j <= 2 * i - 1; ++j) { cout << '*'; } cout << endl; } }
553 : 반복제어문3 - 자가진단6
위와 동일한 문제입니다. 다만 별 대신에 문자를 출력한다는 점이 다릅니다.
여기에서는 char가 원래 숫자라는 것에 유의하시면 어렵지 않게 풀 수 있습니다.
#include <iostream> using namespace std; int main(void) { int n; cin >> n; char ch = 'A'; for (int i = n; i >= 1; --i) { for (int j = 1; j <= i; ++j) { cout << ch++; } cout << endl; } }
554 : 반복제어문3 - 자가진단7
이 문제도 기본적으로 공백과 별을 조합해 역 삼각형을 만든 문제와 비슷합니다.
다만 여기에서는 공백 대신에 문자를 출력한 점이 다르다고 할 수 있습니다.
#include <iostream> using namespace std; int main(void) { int n; cin >> n; char ch = 'A'; for (int i = n, num = 1; i >= 1; --i) { // 숫자 for (int j = 1; j <= i; ++j) { cout << num++ << ' '; } for (int j = i; j <= n; ++j) { cout << ch++ << ' '; } cout << endl; } }
140 : 반복제어문3 - 형성평가1
#include <iostream> using namespace std; int main(void) { int var; int sum = 0, count = 0; for (int i = 0; i < 20; ++i) { cin >> var; if (var == 0) break; sum += var; count++; } int avg = sum / count; cout << sum << ' ' << avg << endl; }
141 : 반복제어문3 - 형성평가2
#include <iostream> using namespace std; int main(void) { int var; cin >> var; for (int i = var; i <= 100; i += var) { cout << i << ' '; if (i % 10 == 0) break; } cout << endl; }
142 : 반복제어문3 - 형성평가3
#include <iostream> using namespace std; int main(void) { int n; cin >> n; for (int i = 0; i < n; ++i) { for (int j = 0; j <= i; ++j) { cout << '*'; } cout << endl; } for (int i = n - 1; i >= 0; --i) { for (int j = 0; j < i; ++j) { cout << '*'; } cout << endl; } }
143 : 반복제어문3 - 형성평가4
#include <iostream> using namespace std; int main(void) { int n; cin >> n; // 위 for (int i = n; i > 1; --i) { // 공백 for (int j = n - i; j > 0; --j) { cout << ' '; } for (int j = 0; j < 2 * i - 1; ++j) { cout << '*'; } cout << endl; } // 아래 for (int i = 1; i <= n; ++i) { // 공백 for (int j = n - i; j > 0; --j) { cout << ' '; } for (int j = 0; j < 2 * i - 1; ++j) { cout << '*'; } cout << endl; } }
144 : 반복제어문3 - 형성평가5
#include <iostream> using namespace std; int main(void) { int n; cin >> n; for (int i = 0; i < n; ++i) { for (int j = 0; j < 2 * (n - i - 1); ++j) { cout << ' '; } for (int j = 0; j < 2 * i + 1; ++j) { cout << '*'; } cout << endl; } }
145 : 반복제어문3 - 형성평가6
#include <iostream> using namespace std; int main(void) { int n; cin >> n; for (int i = 0; i < n; ++i) { for (int j = 0; j < 2 * (n - i - 1); ++j) { cout << ' '; } for (int j = 0; j <= i; ++j) { cout << j + 1 << ' '; } cout << endl; } }
146 : 반복제어문3 - 형성평가7
#include <iostream> using namespace std; int main(void) { int n; cin >> n; char ch = 'A'; int num = 0; for (int i = 0; i < n; ++i) { for (int j = 0; j < n - i; ++j) { cout << ch++ << ' '; } for (int j = 0; j < i; ++j) { cout << num++ << ' '; } cout << endl; } }
147 : 반복제어문3 - 형성평가8
#include <iostream> using namespace std; int main(void) { int n; cin >> n; int num = 1; for (int i = n; i > 0; --i) { for (int j = 0; j < n - i; ++j) { cout << " "; } for (int j = 0; j < i; ++j) { cout << num++ << ' '; } cout << endl; } }
148 : 반복제어문3 - 형성평가9
#include <iostream> using namespace std; int main(void) { int n; cin >> n; for (int i = 0; i < n; ++i) { for (int j = 0; j <= i; ++j) { cout << "# "; } cout << endl; } for (int i = n - 1; i > 0; --i) { for (int j = 0; j < n - i; ++j) { cout << " "; } for (int j = 0; j < i; ++j) { cout << "# "; } cout << endl; } }
149 : 반복제어문3 - 형성평가A
#include <iostream> using namespace std; int main(void) { int n; cin >> n; int num = 1; for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j, num += 2) { cout << num % 10 << ' '; } cout << endl; } }
http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&sca=1080