首页 > 解决方案 > 如何找到可被X Javascript整除的最接近的较大数字

问题描述

我有一个这样的数学问题:当我输入一个数字时,我找到能被数字 x 整除的最接近的较大数字

示例:x = 50
输入 = 20 => 输出 = 50
输入 = 67 => 输出 = 100
输入 = 200 => 输出 = 200
输入 = 289 => 输出 = 300
输入 = 999 => 输出 = 1000
..... ..

我在下面有一个函数,但是有没有办法让它更快?

console.log(roundNumber(199));

function roundNumber(n) {
  let x = 50;
  let flg = false;
  while (flg === false) {
    if (n > x) {
      x += 50;
    } else {
      flg = true;
    }
  }
  return x;
}

标签: javascriptmathnumbers

解决方案


是的,您可以将该input值除以 50,取“地板”,加 1,然后乘以 50。

function roundNumber(n) {
  let x = 50;
  return (Math.floor((n + x - 1) / x)) * 50;
}

这是否会更快是无关紧要的,除非出于某种原因,您在很短的时间间隔内执行了数千次此操作。


推荐阅读