所以,我已经成功地编写了斐波那契数列来创建一个包含数字序列的数组
,但是我需要知道长度(有多少位数字) 第 500
个数字有。
我试过下面的代码,但它找到了科学记数法的长度(22 位),而不是它应该返回的正确的 105。
关于如何将科学记数法数字转换为实际整数有什么想法吗?
var fiblength = function fiblength(nth) {
var temparr = [0,1];
for(var i = 2; i<=nth; i++){
var prev = temparr[temparr.length-2],
cur = temparr[temparr.length-1],
next = prev + cur;
temparr.push(next);
}
var final = temparr[temparr.length-1].toString().length;
console.log(temparr[temparr.length-1]);
return final;
};
a = fiblength(500);
console.log(a);
最佳答案
为什么不使用将数字除以 10 直到数字小于 1 的简单过程。
像这样简单的东西应该可以工作(递归 def obv 也可以)
function getDigits(n) {
var digits = 0;
while(n >= 1) {
n/=10;
digits += 1;
}
return digits;
}
getDigits(200);//3
getDigits(3.2 * 10e20);//=>22
关于javascript - 斐波那契数列 - 计算位数 - JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20726578/