题目
找到最小的数字,使其数字之和为 N 并且可以被 10^N 整除。
Input : N = 5
Output : 500000
500000 is the smallest number divisible
by 10^5 and sum of digits as 5.
Input : N = 20
Output : 29900000000000000000000
分析
o 使一个数字可以被 10^N 整除,我们需要在数字末尾至少有 N 个零。 为了使数字最小,我们将 N 个零添加到数字的末尾。 现在,我们需要确保数字之和为N。为此,我们将尝试使数字的长度尽可能小以获得答案。 因此,我们继续在数字中插入 9,直到总和不超过 N。如果我们还有余数,那么我们将其保留为第一个数字(最高有效位),以使结果数字最小化。
static void digitsNum(int N)
{
if (N == 0)
Console.Write("0");
if (N % 9 != 0)
Console.Write((N % 9));
for (int i = 1; i <= (N / 9); ++i)
Console.Write("9");
for (int i = 1; i <= N; ++i)
Console.Write("0");
Console.WriteLine("" );
}