我正在尝试编写将采用所有两位数字的代码,将它们分成数字,将数字平方然后添加它们。之后,它将重复该过程,直到产生一位数字。
for (i=11;i<25;i++) {
var array = (i).toString(10).split("").map(Number)
var element0 = array[0]
var element1 = array[1]
var total = (element0*element0)+(element1*element1)
while (total>9) {
array = (total).toString(10).split("").map(Number)
element0 = array[0]
element0 = array[1]
total = (element0*element0)+(element1*element1)
}
if (total == 1) {
console.log(i + " is correct")
}
}
每当我运行此过程时,浏览器会冻结,我必须强行关闭它。我是Javascript的新手,所以我将不胜感激任何帮助。谢谢。
答案 0 :(得分:0)
您应该调试代码,例如,这样的简单警告:
for (i=11;i<25;i++) {
var array = (i).toString(10).split("").map(Number)
var element0 = array[0]
var element1 = array[1]
var total = (element0*element0)+(element1*element1)
while (total>9) {
array = (total).toString(10).split("").map(Number)
element0 = array[0]
element0 = array[1]
total = (element0*element0)+(element1*element1)
alert(total)
}
if (total == 1) {
console.log(i + " is correct")
}
}
会告诉你问题,脚本每三次迭代就会持续获得相同的三个数字!
P.S。使用分号终止语句是一种很好的做法,即使它不是必需的:)