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