다중반복 숫자출력2_220707
구구단
정상적인 구구단
정수 n의 값이 주어지면 n*n모양 구구단을 출력하는 프로그램을 작성해보세요.
입력
3
출력
1 * 1 = 1, 1 * 2 = 2, 1 * 3 = 3
2 * 1 = 2, 2 * 2 = 4, 2 * 3 = 6
3 * 1 = 3, 3 * 2 = 6, 3 * 3 = 9
#include <iostream>
using namespace std;
int main(){
int n;
cin >> n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cout << i << " * " << j << " = " << i*j;
if(j==n) continue;
cout<<", ";
}
cout << endl;
}
return 0;
}
--
구구단 만들기
짝수인 정수 a, b를 입력받은 후, 두 숫자의 사이 중 짝수에 해당하는 숫자의 구구단을 예제와 같은 형식으로 출력하는 프로그램을 작성해보세요. b에서 a로 감소하며 출력합니다.
입력
2 6
출력
6 * 1 = 6 / 4 * 1 = 4 / 2 * 1 = 2
6 * 2 = 12 / 4 * 2 = 8 / 2 * 2 = 4
6 * 3 = 18 / 4 * 3 = 12 / 2 * 3 = 6
...............(생략)...............
6 * 8 = 48 / 4 * 8 = 32 / 2 * 8 = 16
6 * 9 = 54 / 4 * 9 = 36 / 2 * 9 = 18
#include <iostream>
using namespace std;
int main(){
int a,b;
cin >> a >> b;
for(int i=1;i<=9;i++){
for(int j=b;j>=a;j-=2){
cout << (j/2)*2 << " * " << i << " = "<< (j/2)*2*i;
if(j == a) continue;
cout << " / ";
}
cout << endl;
}
return 0;
}
구구단 만들기 2
정수 a, b를 입력받은 후, 두 숫자의 사이에 해당하는 숫자의 구구단을 예제와 같은 형식으로 출력하는 프로그램을 작성해보세요.
매 줄마다 b에서 a로 1씩 감소하며 출력합니다. 곱해지는 값은 첫 번째 줄에서는 2, 두 번째 줄에서는 4, 세 번째 줄에서는 6, 그리고 네 번째 줄에서는 8임에 유의합니다.
그 예로 a = 2, b = 4 일 때의 출력은 다음과 같습니다.
4 * 2 = 8 / 3 * 2 = 6 / 2 * 2 = 4
4 * 4 = 16 / 3 * 4 = 12 / 2 * 4 = 8
4 * 6 = 24 / 3 * 6 = 18 / 2 * 6 = 12
4 * 8 = 32 / 3 * 8 = 24 / 2 * 8 = 16
#include <iostream>
using namespace std;
int main(){
int a,b;
cin >> a >> b;
for(int i=2;i<10;i+=2){
for(int j=b;j>=a;j--){
cout << j << " * "<< i << " = "<< i*j;
if(j==a) continue;
cout << " / ";
}
cout << endl;
}
return 0;
}
숫자출력
숫자 삼각형
정수 n의 값이 주어지면 숫자로 이루어진 삼각형을 출력하는 프로그램을 작성해보세요.
입력
5
출력
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
#include <iostream>
using namespace std;
int main(){
int n;
cin >> n;
for(int i=1;i<=n;i++){
for(int j=1;j<=i;j++) cout << j << ' ';
cout << endl;
}
return 0;
}
숫자 피라미드
정수 n이 주어지면, 1부터 n까지의 수에 대해, i (1 ≤ i ≤ n) 번째 줄에 i개의 i를 출력하는 프로그램을 작성해보세요.
입력
8
출력
1
2 2
3 3 3
4 4 4 4
5 5 5 5 5
6 6 6 6 6 6
7 7 7 7 7 7 7
8 8 8 8 8 8 8 8
#include <iostream>
using namespace std;
int main(){
int n;
cin >> n;
for(int i=1;i<=n;i++){
for(int j=1;j<=i;j++) cout << i << ' ';
cout << endl;
}
return 0;
}
숫자 피라미드 3
정수 n이 주어지면, 1부터 n까지의 수에 대해, i (1 ≤ i ≤ n) 번째 줄에 다음 조건에 맞게 i 개의 숫자를 출력하는 프로그램을 작성해보세요.
i 번째 줄의 j 번째 칸에는 i×j 를 출력합니다.
입력
4
출력
1
2 4
3 6 9
4 8 12 16
#include <iostream>
using namespace std;
int main(){
int n;
cin >> n;
for(int i=1;i<=n;i++){
for(int j=1;j<=i;j++) cout << i*j << ' ';
cout << endl;
}
return 0;
}
숫자 피라미드 2
정수 n이 주어지면, i (1 ≤ i ≤ n) 번째 줄에 i개의 숫자를 출력하는데, 숫자는 1부터 순서대로 다음과 같이 출력하는 프로그램을 작성해보세요.
예) n = 4
1
2 3
4 5 6
7 8 9 10
#include <iostream>
using namespace std;
int main(){
int n, cnt = 1;
cin >> n;
for(int i=1;i<=n;i++){
for(int j=1;j<=i;j++){
cout << cnt << ' ';
cnt++;
}
cout << endl;
}
return 0;
}
모양대로 숫자 출력하기
정수 n의 값을 입력받아 다음과 같이 숫자를 출력하는 프로그램을 아래 예를 참고하여 작성해보세요.
n에 2를 입력받는 경우
2 1
1
n에 3를 입력받는 경우
3 2 1
2 1
1
#include <iostream>
using namespace std;
int main(){
int n;
cin >> n;
for(int i=n;i>0;i--){
for(int j=n;j>0;j--){
if(j>i) cout << " ";
else cout << j << ' ';
}
cout<<endl;
}
return 0;
}
특정 규칙에 따른 숫자 출력
정수 n을 입력받아 숫자를 특정 규칙에 따라 출력하는 프로그램을 아래 예를 참고하여 작성해보세요.
- 숫자는 1에서 9까지 출력하고 나면 다시 1로 돌아와서 출력합니다.
#include <iostream>
using namespace std;
int main(){
int n, cnt=1;
cin >> n;
for(int i=n;i>0;i--){
for(int j=n;j>0;j--){
if(j>i) cout << " ";
else{
cout << cnt << ' ';
cnt++;
}
if(cnt>9) cnt = 1;
}
cout<<endl;
}
return 0;
}
규칙에 맞는 출력
정수 n이 주어졌을 때, 다음과 같은 규칙에 맞추어 출력하는 프로그램을 작성해보세요.
n = 4 일 때
4
3 4
2 3 4
1 2 3 4
#include <iostream>
using namespace std;
int main(){
int n;
cin >> n;
for(int i=n;i>0;i--){
for(int j=i;j<=n;j++) cout<<j<<' ';
cout<<endl;
}
return 0;
}
일직선 구구단
정수 n의 값이 주어지면 일직선으로 구구단을 출력하는 프로그램을 작성해보세요. n * n개의 줄에 걸쳐 출력합니다.
입력
2
출력
1 * 1 = 1
1 * 2 = 2
2 * 1 = 2
2 * 2 = 4
#include <iostream>
using namespace std;
int main(){
int n;
cin >> n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cout<<i<<" * "<<j<<" = "<<i*j<<endl;
}
}
return 0;
}
특이한 출력
정수 n의 값이 주어지면 (1, 1)에서 (n, n)까지 특이한 조건을 만족하며 출력하는 프로그램을 작성해보세요.
(1, 1)에서 오른쪽으로 차례대로 출력합니다
(i, j) 에서 i + j가 4의 배수가 되는순간 다음 줄로 넘어갑니다.
#include <iostream>
using namespace std;
int main(){
int n;
cin >> n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cout<<'('<<i<<", "<<j<<')'<<' ';
if((i+j)%4==0) cout<<endl;
}
}
return 0;
}
19단 출력
19 * 19 단을 다음 양식에 맞춰 출력하는 코드를 작성해보세요.
1 * 1 = 1 / 1 * 2 = 2
1 * 3 = 3 / 1 * 4 = 4
.............
1 * 17 = 17 / 1 * 18 = 18
1 * 19 = 19
2 * 1 = 2 / 2 * 2 = 4
.............
19 * 17 = 323 / 19 * 18 = 342
19 * 19 = 361
#include <iostream>
using namespace std;
int main(){
for(int i=1;i<=19;i++){
for(int j=1;j<=19;j++){
cout<<i<<" * "<<j<<" = "<<i*j;
if(j%2==1&&j!=19) cout<<" / ";
else cout<<endl;
}
}
return 0;
}
구구단으로 이루어진 직각 삼각형
다음과 같은 규칙에 따라 구구단을 직각삼각형으로 출력하는 프로그램을 작성해보세요.
예) n = 5
1 * 1 = 1 / 1 * 2 = 2 / 1 * 3 = 3 / 1 * 4 = 4 / 1 * 5 = 5
2 * 1 = 2 / 2 * 2 = 4 / 2 * 3 = 6 / 2 * 4 = 8
3 * 1 = 3 / 3 * 2 = 6 / 3 * 3 = 9
4 * 1 = 4 / 4 * 2 = 8
5 * 1 = 5
#include <iostream>
using namespace std;
int main(){
int n;
cin >> n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n-i+1;j++){
cout<<i<<" * "<<j<<" = "<<i*j;
if(j==n-i+1) continue;
cout<<" / ";
}
cout<<endl;
}
return 0;
}
정사각 알파벳 출력하기
정수 n의 값이 주어지면 n*n 개 정사각형 모양으로 알파벳을 출력하는 프로그램을 작성해보세요.
#include <iostream>
using namespace std;
int main(){
int n;
cin >> n;
char a=65;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
cout<<a;
a++;
}
cout<<endl;
}
return 0;
}
알파벳 출력하기
정수 n의 값을 입력받아 다음과 같이 영문자를 출력하는 프로그램을 아래 예를 참고하여 작성해보세요. Z 다음에는 A가 나와야 합니다.
n에 2가 주어지는 경우
A
BC
n에 3가 주어지는 경우
A
BC
DEF
#include <iostream>
using namespace std;
int main(){
int n;
char a = 65;
cin >> n;
for(int i=0; i<n; i++){
for(int j=0; j<=i; j++){
cout<<a;
a++;
if(a == 91) a=65;
}
cout<<endl;
}
return 0;
}
알파벳 출력하기 2
정수 n의 값을 입력받아 다음과 같이 영문자를 출력하는 프로그램을 아래 예를 참고하여 작성해보세요. Z 다음에는 A가 나와야 합니다.
n에 2가 주어지는 경우
A B
C
n에 3가 주어지는 경우
A B C
D E
F
#include <iostream>
using namespace std;
int main(){
int n;
char a = 65;
cin >> n;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(j<i) cout<<" ";
else{
cout<<a<<' ';
a++;
if(a == 91) a=65;
}
}
cout<<endl;
}
return 0;
}
n번 반복
ab곱 n번 구하기
정수 n과 n개의 a, b쌍이 주어집니다. a부터 b까지의 곱셈을 출력하는 프로그램을 작성해보세요.
입력
3
1 4
6 8
2 5
출력
24
336
120
#include <iostream>
using namespace std;
int main(){
int n,a,b,cnt;
cin >> n;
for(int i=0;i<n;i++){
cin >> a >> b;
cnt = 1;
for(int j=a;j<=b;j++){
cnt *= j;
}
cout << cnt << endl;
}
return 0;
}
n + 1 수열 m번
자연수 n이 주어집니다. n에서 시작하여 n이 짝수면 2로 나누고, n이 홀수면 3을 곱하고 1을 더하는 것을 n이 1이 되기 전까지 계속 반복하려고 합니다. 총 몇 번을 반복해야 1이 되는지를 계산하는 프로그램을 작성해보세요.
예를 들어 n = 3인 경우 3 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 -> 1 순서로 1이 되므로 답이 7이 됩니다.
이 문제에서는 총 m번에 걸쳐 n 값이 주어집니다. 각각의 경우에 대해 주어진 n이 1이 되는데 걸리는 횟수를 구해야 합니다.
#include <iostream>
using namespace std;
int main(){
int m, n, cnt;
cin >> m;
for(int i=0;i<m;i++){
cin >> n;
cnt = 0;
while(n!=1){
if(n%2==1) n = 3*n+1;
else n /= 2;
cnt ++;
}
cout<<cnt<<endl;
}
return 0;
}
완전수
완전수란 자기 자신을 제외한 모든 양의 약수들을 더했을 때 자기 자신이 되는 수 입니다.
예를 들어 6=1+2+3 이므로 6은 완전수 입니다.
주어지는 start에서 end 이내에 있는 숫자들 중 완전수가 몇 개인지 출력하는 코드를 작성해보세요.
#include <iostream>
using namespace std;
int main(){
int start, end, cnt = 0, num;
cin >> start >> end;
for(int i=start; i<=end; i++){
num = 1;
for(int j=2;j<i;j++){
if(i%j==0) num += j;
}
if(i == num) cnt++;
}
cout<<cnt;
return 0;
}
약수의 개수가 3개인 수
주어지는 두 수(start, end)에 대해서, start 이상, end 이하의 숫자 중에 약수가 3개인 숫자의 개수를 구하는 코드를 작성해보세요.
#include <iostream>
using namespace std;
int main(){
int start, end, cnt = 0, num;
cin >> start >> end;
for(int i=start; i<=end; i++){
num = 1;
for(int j=2;j<=i;j++){
if(i%j==0) num ++;
}
if(num == 3) cnt ++;
}
cout << cnt;
return 0;
}
소수 구하기
1에서 n 사이의 소수를 오름차순으로 출력하는 프로그램을 작성해보세요.
#include <iostream>
using namespace std;
int main(){
int n,cnt = 0,is_prime=0;
cin >> n;
for(int i=2;i<=n;i++){
is_prime = 0;
if(i > 2){
for(int j=2;j<=i/2;j++){
if(i%j == 0){
is_prime = 1;
break;
}
}
}
if(is_prime == 0) cout<<i<<' ';
}
return 0;
}
짝수의 합 n번 구하기
n번에 걸쳐 두 정수 a, b가 주어졌을 때, a부터 b까지의 짝수를 모두 합한 결과를 출력하는 프로그램을 작성해보세요.
입력
3
1 10
1 20
5 30
출력
30
110
234
#include <iostream>
using namespace std;
int main(){
int n,a,b,cnt;
cin >> n;
for(int i=0;i<n;i++){
cin >> a >> b;
cnt = 0;
for(int j=a;j<=b;j++){
if(j%2==0) cnt +=j;
}
cout<<cnt<<endl;
}
return 0;
}