一个数字的数字的总和javascript

前端之家收集整理的这篇文章主要介绍了一个数字的数字的总和javascript前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在这个话题上看到了一堆其他的帖子,但在 javascript中没有.这是我的代码
var theNumber = function digitAdd (base,exponent) {
    var number = 1;
    for (i=0; i < exponent; i++) {
        var number = base * number;
    }
    return number
}


function find(theNumber) {
 var sum=0;
    parseInt(theNumber);
    while(theNumber>0)
     {
       sum=sum+theNumber%10;
       theNumber=Math.floor(theNumber/10);
      }
    document.writeln("Sum of digits  "+sum);
   }

find(theNumber (2,50));

我得到正确的答案,我只是不完全明白第二个功能,即while语句.任何帮助将不胜感激.谢谢!

解决方法

第二个函数使用模运算符来提取最后一个数字:
1236 % 10
= 1236 - 10 * floor(1236 / 10)
= 1236 - 1230
= 6

提取最后一位数字时,从数字中减去:

1236 - 6
= 1230

数字除以10:

1230 / 10
= 123

每次重复此循环时,最后一位数字被切断并加到总和中.

如果左手侧小于右侧(这将发生任何1位数字),则循环中断时,模运算符返回单位数:

1 % 10
= 1

这是领先数字如何添加到总数.

一个较少数字的替代方法是:

function sumDigits(number) {
  var str = number.toString();
  var sum = 0;

  for (var i = 0; i < str.length; i++) {
    sum += parseInt(str.charAt(i),10);
  }

  return sum;
}

它确实是你想要做的,它是迭代数字的数字(通过将其转换为字符串).

猜你在找的JavaScript相关文章