- toc {:toc}
λ¬Έμ
μ΄λ€ μμ°μ N μ΄ μμ λ, κ·Έ μμ°μ N μ λΆν΄ν©μ N κ³Ό N μ μ΄λ£¨λ κ° μ리μμ ν©μ μλ―Ένλ€. μ΄λ€ μμ°μ M μ λΆν΄ν©μ΄ N μΈ κ²½μ°, M μ N μ μμ±μλΌ νλ€. μλ₯Ό λ€μ΄, 245 μ λΆν΄ν©μ 256(=245+2+4+5) μ΄ λλ€. λ°λΌμ 245 λ 256 μ μμ±μκ° λλ€. λ¬Όλ‘ , μ΄λ€ μμ°μμ κ²½μ°μλ μμ±μκ° μμ μλ μλ€. λ°λλ‘, μμ±μκ° μ¬λ¬ κ°μΈ μμ°μλ μμ μ μλ€.
μμ°μ N μ΄ μ£Όμ΄μ‘μ λ, N μ κ°μ₯ μμ μμ±μλ₯Ό ꡬν΄λ΄λ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯
첫째 μ€μ μμ°μ N(1 β€ N β€ 1,000,000) μ΄ μ£Όμ΄μ§λ€.
μΆλ ₯
첫째 μ€μ λ΅μ μΆλ ₯νλ€. μμ±μκ° μλ κ²½μ°μλ 0 μ μΆλ ₯νλ€.
μΆμ²:https://www.acmicpc.net/problem/2231
<νμ΄>
λ¨μνκ² μΌμ΄μ€ νλμ© λλ €κ°λ©΄μ μ°Ύμλ΄μλ€.
β»λ¬Έμ νμ€νκ² μ½μ κ²! λ¬Έμ μ΄ν΄κ° μ°μ μ.
#include <iostream>
using namespace std;
void sumEachDigit(int &sum, int num);
int main()
{
int n, sum, temp;
cin >> n;
for(int i=1; i<=n; i++)
{
sum=0;
sum+=i;
sumEachDigit(sum, i);
if(sum == n)
{
cout << i << endl;
break;
}
}
if(sum > n)
cout << 0 << endl;
return 0;
}
void sumEachDigit(int &sum, int num)
{
while(num!=0)
{
sum += num%10;
num /= 10;
}
}