데일리 codeup/다중 반복문

다중반복 숫자출력2_220707

hayo_su 2022. 7. 7. 14:36

구구단


정상적인 구구단

정수 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;
}