보관함
JUNGOL 기초다지기 07 반복제어문2
niamdank
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
JUNGOL | 문제은행 1 페이지
www.jungol.co.kr