ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 다중반복 숫자출력2_220707
    데일리 codeup/다중 반복문 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;
    }

    '데일리 codeup > 다중 반복문' 카테고리의 다른 글

    다중반복 숫자출력_220706  (0) 2022.07.06
    별출력_220805  (0) 2022.07.05

    댓글

Designed by Tistory.