所以我目前正在使用该功能
const countSixes = n => {
if (n === 0) return 0;
else if (n === 1) return 1;
else n = (countSixes(n-1) + countSixes(n-2)) / 2;
return n;
}
所以我的问题是如何将最终的浮点值转换为字符串?
每次调用函数并尝试转换浮点数后,每次都会返回NaN
希望得到答案
谢谢!
答案 0 :(得分:1)
第一个选项对我有用
<script>
const countSixes = n => {
if (n === 0) return 0;
else if (n === 1) return 1;
else n = (countSixes(n-1) + countSixes(n-2)) / 2;
return n;
}
alert(countSixes(12) + "")
</script>
答案 1 :(得分:1)
这个问题真的很有趣。之所以使用它的return
NaN
是因为当您以n
的形式返回String
时,由于function
被递归调用,因此它不能在下一级执行算术运算。
对于某些数字,例如55
function countSixes(n,firstTime=true){
if (n === 0) return 0;
else if (n === 1) return 1;
else n = (countSixes(n-1,false) + countSixes(n-2,false)) / 2;
if(firstTime) return n.toFixed(10); // return string
else return parseFloat(n.toFixed(10)); // return float
}
答案 2 :(得分:0)
您可以将最终值转换为带有所需小数的字符串。
const countSixes = n => {
if (n === 0) return 0;
if (n === 1) return 1;
return (countSixes(n - 1) + countSixes(n - 2)) / 2;
}
console.log(countSixes(30).toFixed(15));