※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※


이번에 볼 문제는 백준 2576번 문제인 홀수이다.
문제는 아래 링크를 확인하자.

www.acmicpc.net/problem/2576

 

2576번: 홀수

7개의 자연수가 주어질 때, 이들 중 홀수인 자연수들을 모두 골라 그 합을 구하고, 고른 홀수들 중 최솟값을 찾는 프로그램을 작성하시오. 예를 들어, 7개의 자연수 12, 77, 38, 41, 53, 92, 85가 주어지

www.acmicpc.net

이 문제에서는 100 미만의 자연수 7개가 입력으로 주어진다.

 

이 가운데 홀수가 없다면, 즉 2로 나눈 나머지가 1인 수가 없다면 -1을 출력하자.

 

그렇지 않다면(홀수가 있다면) 모든 홀수의 총합과 가장 작은 홀수를 구해 각 줄에 출력하자.

 

아래는 제출한 소스코드이다.

#include <iostream>
using std::cin;
using std::cout;

int main() {
    int x;
    int summation = 0, minimum = 100; // 들어오는 홀수는 모두 100보다 작을 것이므로
    for (int i = 0;i < 7;i++) { // 숫자를 7번 읽는다
        cin >> x;
        if (x % 2 == 1) { // 홀수인지 확인: 2로 나눈 나머지가 1인지 확인
            summation += x; //summation: 홀수의 총합
            if (minimum > x) { // 지금까지 나온 가장 작은 숫자를 minimum에 저장
                minimum = x;
            }
        }
    }
    if (summation == 0) { // 홀수가 하나도 없었다면 모든 홀수의 합이 0이다
        cout << -1;
    }
    else { // 홀수가 하나라도 있었다면 모든 홀수의 합은 0이 아니다.
        cout << summation << '\n' << minimum;
    }
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 1977 // C++] 완전제곱수  (0) 2021.01.03
[BOJ 1475 // C++] 방 번호  (0) 2021.01.02
[BOJ 10988 // C++] 팰린드롬인지 확인하기  (0) 2021.01.01
[BOJ 10808 // C++] 알파벳 개수  (0) 2020.12.31
[BOJ 14470 // C++] 전자레인지  (0) 2020.12.29

+ Recent posts