[백준] 16680 – 안수빈수

문제

#16680: 안수빈 (acmicpc.net)

#16680: 안수빈

체크섬이란 무엇입니까? 숫자를 소수로 나타낼 때 각 자리의 합을 의미합니다.
예를 들어, 1093의 숫자 합계는 1 + 0 + 9 + 3 = 13입니다.
숫자 합계가 짝수인 양의 정수가 있습니다.

www.acmicpc.net

설명

플래티넘에게는 문제를 이해하는 것이 매우 쉽습니다.

문제는 N의 배수 중에서 각 숫자의 합을 찾는 것이며 그 합은 홀수입니다.

숫자는 int의 범위를 벗어나므로 long long을 사용해야 합니다!
(늦게알아서 10분낭비.. )

자릿수를 구해야 하므로 나머지와 나눗셈 연산자로 풀었습니다.

%2의 합이 1이면 홀수이므로 출력하고 종료한다.

해당 번호가 없으면 N += N을 실행하여 다음 번호를 검색합니다(여러 번).

이런 관점에서 보면 정말 단순한 백금처럼 보이지만, 이 문제에 대한 의외의 해결책이 있습니다.

#include <iostream>
using namespace std;

int main() {
    int T;
    cin >> T;

    while (T--) {
        long long N;
        cin >> N;

        while (1) {
            long long sum = 0;
            long long temp = N;

            while (temp !
= 0) { sum += temp % 10; temp /= 10; } if (sum % 2 == 1) { cout << N << "\n"; break; } else { N += N; } } } return 0; }

뜻밖에

아니, 그냥 999999999(10억 – 1)를 곱하면?

#include <iostream>
using namespace std;

int main() {
    int T;
    cin >> T;

    while (T--) {
        long long N;
        cin >> N;
      
        cout << N * 999999999 << "\n";
    }

    return 0;
}