-
JUNGOL 기초다지기 07 반복제어문2보관함 2019. 11. 21. 22:10
프로그래밍에서 가장 기초적인 내용을 다루는 기초 다지기입니다.
이번 포스팅은 기초 다지기 중 일곱 번째인 반복제어문2 문제를 풀어보도록 하겠습니다.
기초 내용인 만큼 다른 설명없이 문제와 코드만 간단하게 작성하도록 하겠습니다.
541 : 반복제어문2 - 자가진단1
#include <iostream> using namespace std; int main(void) { char ch; cin >> ch; for (int i = 0; i < 20; ++i) cout << ch; cout << endl; }
542 : 반복제어문2 - 자가진단2
#include <iostream> using namespace std; int main(void) { for (int i = 10; i <= 20; ++i) cout << i << ' '; cout << endl; }
543 : 반복제어문2 - 자가진단3
이 문제는 조건문을 사용해야할 것 같지만 조금만 더 생각하면 조건문 없이 처리가 가능합니다.
#include <iostream> using namespace std; int main(void) { int var; cin >> var; for (int i = 2; i <= var; i += 2) cout << i << ' '; cout << endl; }
544 : 반복제어문2 - 자가진단4
이런 문제는 사실 반복문을 사용하는 것 보다는 수학 공식을 사용하는 편이 더 효율적입니다.
다만 지금은 문제의 의도가 반복문을 사용하는 것이기 때문에 문제의 의도에 따르도록 하겠습니다.
#include <iostream> using namespace std; int main(void) { int var; cin >> var; int sum = 0; for (int i = var; i <= 100; ++i) sum += i; cout << sum << endl; }
545 : 반복제어문2 - 자가진단5
10개의 정수를 입력받는다고 무조건 배열을 만들어 입력 받을 필요는 없습니다.
문제의 유형에 따라 단순히 반복문 내부에서 입력받은 값을 바로 처리할 수 있는 경우엔 그렇게 하는 편이 더 좋습니다.
#include <iostream> using namespace std; int main(void) { int countMul3 = 0, countMul5 = 0; int var; for (int i = 0; i < 10; ++i) { cin >> var; if (var % 3 == 0) countMul3++; if (var % 5 == 0) countMul5++; } cout << "Multiples of 3 : " << countMul3 << endl; cout << "Multiples of 5 : " << countMul5 << endl; }
546 : 반복제어문2 - 자가진단6
#include <iostream> using namespace std; int main(void) { int lim; cin >> lim; int var, sum = 0; for (int i = 0; i < lim; ++i) { cin >> var; sum += var; } float avg = static_cast<float>(sum) / lim; cout.setf(ios::fixed); cout.precision(1); cout << "avg : " << avg << endl; if (avg >= 80.0f) cout << "pass" << endl; else cout << "fail" << endl; }
547 : 반복제어문2 - 자가진단7
#include <iostream> using namespace std; int main(void) { for (int i = 2; i <= 6; ++i) { for (int j = 0; j <= 4; ++j) { cout << i + j << ' '; } cout << endl; } cout << endl; }
548 : 반복제어문2 - 자가진단8
#include <iostream> #include <iomanip> using namespace std; int main(void) { cout.setf(ios::right); for (int i = 2; i <= 4; ++i) { for (int j = 1; j <= 5; ++j) { cout << i << " * " << j << " = " << setw(2) << i * j << " "; } cout << endl; } cout << endl; }
130 : 반복제어문2 - 형성평가1
#include <iostream> using namespace std; int main(void) { int n; cin >> n; for (int i = 0; i < n; ++i) { cout << "JUNGOL" << endl; } }
131 : 반복제어문2 - 형성평가2
#include <iostream> using namespace std; int main(void) { int var1, var2; cin >> var1 >> var2; int beg = (var1 < var2) ? var1 : var2; int end = (var1 > var2) ? var1 : var2; for (int i = beg; i <= end; ++i) { cout << i << ' '; } cout << endl; }
132 : 반복제어문2 - 형성평가3
#include <iostream> using namespace std; int main(void) { int var; cin >> var; int sum = 0; for (int i = 5; i <= var; i += 5) { sum += i; } cout << sum << endl; }
133 : 반복제어문2 - 형성평가4
#include <iostream> using namespace std; int main(void) { int n; cin >> n; int var, sum = 0; for (int i = 0; i < n; ++i) { cin >> var; sum += var; } float avg = static_cast<float>(sum) / n; cout.setf(ios::fixed); cout.precision(2); cout << avg << endl; }
134 : 반복제어문2 - 형성평가5
#include <iostream> using namespace std; int main(void) { int var; int oddCount = 0, evenCount = 0; for (int i = 0; i < 10; ++i) { cin >> var; if (var % 2 == 0) evenCount++; else oddCount++; } cout << "even : " << evenCount << endl; cout << "odd : " << oddCount << endl; }
135 : 반복제어문2 - 형성평가6
귀찮은 문제가 나왔네요. 어렵다기 보다는 문제에 조건을 정확히 명시하지 않는 문제입니다.
입력이 뒤에 오는 숫자가 더 작을 수도 있는 조건이 있습니다.
#include <iostream> using namespace std; void Swap(int& var1, int& var2); int main(void) { int var1, var2; cin >> var1 >> var2; if (var1 > var2) Swap(var1, var2); int sum = 0, count = 0; for (int i = var1; i <= var2; ++i) { if (i % 3 == 0 || i % 5 == 0) { sum += i; count++; } } float avg = static_cast<float>(sum) / count; cout.setf(ios::fixed); cout.precision(1); cout << "sum : " << sum << endl; cout << "avg : " << avg << endl; } void Swap(int& var1, int& var2) { int temp = var1; var1 = var2; var2 = temp; }
136 : 반복제어문2 - 형성평가7
for문 내에는 콤마로 구분하여 여러개의 연산을 넣을 수 있습니다.
#include <iostream> using namespace std; int main(void) { int var; cin >> var; for (int i = var, count = 0; count < 10; i += var, ++count) { cout << i << ' '; } cout << endl; }
137 : 반복제어문2 - 형성평가8
#include <iostream> using namespace std; int main(void) { int height, width; cin >> height >> width; for (int i = 1; i <= height; ++i) { for (int j = 0, num = i; j < width; ++j, num += i) { cout << num << ' '; } cout << endl; } }
138 : 반복제어문2 - 형성평가9
#include <iostream> using namespace std; int main(void) { int var; cin >> var; for (int i = 1; i <= var; ++i) { for (int j = 1; j <= var; ++j) { cout << '(' << i << ", " << j << ") "; } cout << endl; } }
139 : 반복제어문2 - 형성평가A
#include <iostream> #include <iomanip> using namespace std; int main(void) { int var1, var2; cin >> var1 >> var2; for (int i = 1; i <= 9; ++i) { if (var1 < var2) { for (int j = var1; j <= var2; ++j) { cout << j << " * " << i << " = " << setw(2) << j * i << " "; } } else { for (int j = var1; j >= var2; --j) { cout << j << " * " << i << " = " << setw(2) << j * i << " "; } } cout << endl; } }
http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&sca=1070