코드구현력 기르기1

1) 1부터 N까지의 M의 배수합

자연수 N이 입력되면 1부터 N까지의 수 중 M의 배수합을 출력하는 프로그램을 작성하세요.

#include <iostream>
using namespace std;

int main() {
    int n, m, sum = 0;
    cin >> n >> m;
    for (int i=1; i<=n; i++) {
        if (i % m == 0) {
            sum += i;
        }
    } 
    cout << sum;
    return 0;
}




2) 자연수의 합

자연수 A,B가 주어지면 A부터 B까지의 합을 수식과 함께 출력하세요.

#include <iostream>
using namespace std;

int main() {
    int i, a, b, sum = 0;
    cin >> a >> b;
    for (i=a; i<b; i++) {
        cout << i << " + ";
        sum += i;
    }
    cout << i << " = ";
    cout << sum + i;
    return 0;
}




3) 진약수의 합

자연수 N이 주어지면 자연수 N의 진약수의 합을 수식과 함께 출력하는 프로그램을 작성하세요.

#include <iostream>
using namespace std;

int main() {
    int i, n, sum = 0;
    cin >> n;
    cout << 1;
    for(i=2; i<n; i++) {
        if (n % i == 0) {
            cout << " + " << i;
            sum += i;
        }
    }
    cout << " = " << sum + 1;
}

해설 : 1을 먼저 고정시키고 + i 형태로 출력 후 = sum 출력으로 마무리




4) 나이 차이

N(2<=N<=100)명의 나이가 입력됩니다. 이 N명의 사람 중 가장 나이차이가 많이 나는 경우는 몇 살 일까요? 최대 나이 차이를 출력하는 프로그램을 작성하세요.

입력설명 : 첫 줄에 자연수 N(2<=N<=100)이 입력되고, 그 다음 줄에 N개의 나이가 입력된다.

#include <iostream>
using namespace std;

int main() {
    //freopen("input.txt", "rt", stdin);
    int n, i, a, max=-2147000000, min=2147000000;
    cin >> n;
    for(i=1; i<=n; i++) {
        cin >> a;
        if(a > max) max = a;
        if(a < min) min = a;
    }
    cout << max - min;
    return 0;
}

해설 : 2147000000 기억하기, cin >> a로 또 입력받은 것들을 하나씩 비교해 max, min 구하기

5) 나이 계산(문자열 컨트롤)

주민등록증의 번호가 주어지면 주민등록증 주인의 나이와 성별을 판단하여 출력하는 프로그램을 작성하세요. 주민등록증의 번호는 -를 기준으로 앞자리와 뒷자리로 구분된다. 뒷자리의 첫 번째 수가 1이면 1900년대생 남자이고, 2이면 1900년대생 여자, 3이면 2000년대생 남자, 4이면 2000년대생 여자이다. 올해는 2019년이다. 해당 주민등록증 주인의 나이와 성별을 출력하세요.

입력설명 : 첫 줄에 주민등록증 번호가 입력됩니다.

좋은 웹페이지 즐겨찾기