我想用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>
答案 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>