所以我试图为冰雹获取这个函数,但我似乎无法让它在一行上全部打印。代码如下:
var hailStoneSeq = function(n){
var seq = n + " "
while(n != 1)
{
if(n % 2 == 0)
{
n = n / 2
console.log(n)
var newSeq = n
}
else
{
n = ((n * 3) + 1)
console.log(n)
newSeq = n
}
}
return seq + newSeq
}
现在,当我运行它时,console.log 可以工作并显示整个序列。但是return语句只返回输入的值,所以n本来就是1,就像这样:
hailStoneSeq(5)
16
8
4
2
1
"5 1"
如何获得最后的 return 语句以在一行上返回整个序列?
最佳答案
删除 console.log(n)
行并在函数返回之前创建一个输出数组。另外,您不需要 newSeq
变量,只需使用 n
。
编辑:误解了问题,代码已修复
function hailStoneSeq(n){
var seq=[n]
while(n!=1){
if(n%2==0) n/=2
else n=(n*3)+1
seq.push(n)
}
return seq.join(' ')
}
console.log(hailStoneSeq(5))
关于Javascript 冰雹序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40557444/