각 자릿수의 합이 홀수인 수를 안수빈수라고 할 때 N의 배수 중 안수빈수인 수를 아무거나 하나 출력합니다.
굉장히 굉장히 어려운 문제였습니다…
각 자릿수의 합을 홀수로 만들어야합니다.
보기엔 간단하지만 발상이 어려워요… 제 기준입니다…ㅠ
123의 답을 찾아보겠습니다.
12300000은 123의 배수입니다.
12300000 - 123 = 12299877도 123의 배수입니다.
처음 세자리 122와 뒤 세자리 877을 더하면 999가 됩니다.
위의 수의 각 자리 합을 더하면 9 * 5 = 45가 되어 홀수가 됩니다.
위 처럼 (10^K - 1)의 배수의 자릿수의 합을 보면 뒤에 0이 있는 곳에 N을 빼고 앞에는 N - 1이 되어 둘을 더하게 되면 999 형태의 숫자가 됩니다. 결국 K만큼 9를 더한 값이 이 수의 각 자리 합입니다.
수의 범위가 10^8이고 9개의 개수가 홀수이어야 안수빈수가 될 수 있기 때문에 10^9-1를 곱한 값은 무조건 안수빈수입니다.
이 문제를 풀면서 기본적인 수학문제를 어렵게 낼 수 있구나 생각했습니다.
역시 수학은 어려워요…
#include <bits/stdc++.h>
#define FIO ios::sync_with_stdio(0), cin.tie(0), cout.tie(0)
#define ll long long
using namespace std;
int main() {
FIO;
int t; cin >> t; while (t--) {
ll n; cin >> n;
cout << (n * ((int)1e9 - 1)) << '\n';
}
return 0;
}