数字的总和

时间:2016-02-28 05:27:24

标签: javascript algorithm

我想用JavaScript创建一个程序,它会添加一个数字的数字,直到结果中的数字位数为1.

示例:

57 = 5 + 7 = 12 = 1 + 2 = 3.

我做了一个程序,完成了一半的工作。 这是它

<!DOCTYPE html>
<html>

<head>
    <title>Try</title>
    <style type="text/css">

    </style>
</head>

<body>
    <form><input type="text" onkeyup="sumofDigits(this.value)"></input>
    </form>
    <h1></h1>
    <script type="text/javascript">
        function sumofDigits(number) {
            var num = number.toString();
            var sum = 0;

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

            document.querySelector('h1').innerHTML = sum;
        }
    </script>
</body>

</html>

4 个答案:

答案 0 :(得分:5)

这里不需要字符串函数。 您可以在mod(操作。

)的帮助下轻松获得结果
function sumDigits(number) {
      document.querySelector('h1').innerHTML = ((number-1)%9+1);
}

答案 1 :(得分:2)

就是这样。

function sumDigits(number) {
    var num = number.toString();

    while (num.length != 1) {
        var sum = 0;
        for (var i = 0; i < num.length; i++) {
            sum += parseInt(num.charAt(i), 10);
        }
        num = sum.toString();
        document.querySelector('h1').innerHTML = sum;
    }
}

答案 2 :(得分:0)

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

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

    if (sum > 9)  
        sumDigits(sum);
      else           
        document.querySelector('h1').innerHTML = sum;

}

答案 3 :(得分:0)

试试这个

<script type="text/javascript">
    function sumDigits(number) {
        while( number > 9){
            var num = number.toString();
            var sum = 0;
            for (var i = 0; i < num.length; i++) {
                sum += parseInt(num.charAt(i), 10);
            }
            number = sum;
        }
        document.querySelector('h1').innerHTML = sum;
    }
</script>