一尘不染

如何找到任意整数10的下一个倍数?

algorithm

动态整数可以是0到150之间的任何数字。

即-数字返回41,需要返回50。如果数字为10,则需要返回10。数字为1,需要返回10。

我在想如果将整数修改为小数则可以使用上限函数吗?然后使用上限功能,并放回十进制?
唯一需要知道的是数字是1位,2位还是3位(即-7 vs 94 vs 136)

有没有更好的方法来实现这一目标?

谢谢,


阅读 261

收藏
2020-07-28

共1个答案

一尘不染

n + (10 - n % 10)

这是如何工作的。%运算符求和除法的余数(因此41 % 10求值为1,而45 % 10求值为5)。从10减去该值将得出达到下一个倍数需要多少。

唯一的问题是,它将变成40变成50。如果您不希望这样做,则需要添加一张支票以确保它不是10的倍数。

if (n % 10)
    n = n + (10 - n % 10);
2020-07-28