我的问题与数字和有关。
在数字和系统中,数字 39 = 3 + 9 = 12 的数字和。
但是就我而言,我想编写一个方法,其中用户输入 12,然后 方法将返回 39,因为 39 是达到位数和 12 的最小数字。
如果我们可以在伪代码中讨论这个问题,那就太好了,因为我更感兴趣的是学习开发一种方法/算法/公式来解决这个难题。
提示使用队列。我还尝试过以下方法:
数量%9; number/9,它很接近,但似乎并不适用于所有情况。
一个例子是:
12%9 = 3
12/9 = 1; if( ans = 1, 返回 9)
因此 3 和 9 将是 39。我知道我已经很接近了,但我尝试对 111 这样的数字使用相同的方法,但这不再起作用了。
最佳答案
最小的数字始终采用“x9...9999”的形式,其中 x 是单个数字(可能是 0)。
您需要做的就是找到:
- x 的值:
n % 9
- 有多少个 9:
n/9
。
对于 111:
n % 9
为 3。n/9
是 12。
所以答案是 3999999999999。
关于java - 返回一个整数,其数字之和恰好为 n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13008373/