在javascript

时间:2017-10-04 05:50:20

标签: javascript arrays numbers int

我正在尝试解决代码问题上的一个问题。问题如下:

在数学中,斐波那契数字在以下整数序列中,称为斐波纳契数列,其特征在于其中的每个数字都是前两个数字的总和:

1,1,2,3,5,8,13,21,34,55,89,144,...... 实现函数getFibonacci(n),它将在Fibonacci序列的n位上返回数字的字符串表示。

我已经制定了我的代码,但是我的代码只能在测试数字很小时才通过测试,并且在涉及大数字时失败所有测试并得到错误消息,例如"预期:' 30010821454963453907530667147829489881&# 39;而得到:' 3.001082145496346e + 37'"。 另外,我试图在return语句的末尾添加toNotExponential()或expandExponential()以帮助显示完整的数字,但是,任何一个代码都可以正常工作,因为我不断收到错误说" toNotExponential()不是一个功能"或" expandExponential()不是函数"。 不知道该怎么办,请帮忙。 我的代码如下......

    function getFibonacci(n) {
    var arr= [1,1];
    var len = arr.length;
    while(len<n){
    arr.push(arr[len-1]+arr[len-2]);
    len++;
   }
   return (arr[len-1]+"").toNotExponential();
   }

1 个答案:

答案 0 :(得分:0)

您可以使用给定数字的部分之和作为字符串来执行数学过程。考虑将数字.length作为字符串的3大于1的数字中的每个三位数都可以视为数千,其中会999添加1000N。然后,我们可以声明如果1000等于2000,则将N添加到1000会产生3。因此,我们可以使用字符串的索引来确定我们在字符串中迭代的精确数千,并选择3组以确定相邻 if(cursor.getCount()>0) { cursor.moveToFirst(); do { String s = cursor.getString(11).toLowerCase(); if (s.contains("debited")) { count++; System.out.println("===body:" + cursor.getString(11)); System.out.println("===count:" + count); } while (cursor.moveToNext()) ; } 组中的一个或多个数字是否应该是重新计算,并显示为没有E-notation的数字。请参阅How do I add 1 to a big integer represented as a string in JavaScript?