【问题标题】:How to find the nearest larger number that is divisible by X Javascript [duplicate]如何找到可被X Javascript整除的最接近的较大数字[重复]
【发布时间】:2021-08-06 14:22:49
【问题描述】:

我有一个这样的数学问题: 当我输入一个数字时,我会找到能被数字 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;
}

【问题讨论】:

  • 没有Math函数...return (x - (n % x)) % x + n;

标签: javascript math numbers


【解决方案1】:

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

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

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

【讨论】:

  • 对不起!我只是稍微编辑了一下问题,如果roundNumber(200) 结果是250,我希望它是200 谢谢!
  • @tranthaihoang 哦,对;有点变化,请稍等
  • @tranthaihoang 答案现已修复,抱歉我已经有一段时间没有这样做了:)
  • 谢谢!我遵循了这个建议,它工作了stackoverflow.com/questions/3254047/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-09
  • 1970-01-01
相关资源
最近更新 更多