生成小于某数的序列
def fibSequenceLessThanNum(num):
a, b = 0, 1
result = []
while a < num:
result.append(a)
a, b = b, a + b
return result
fibSeqLessThanNum(1000)
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987]
>>>
function fibonacci(n) {
var i = 1, j = 1;
var arr = [i, j];
var last = 1;
while (true) {
last = i + j;
if(last>n)break;
i = j;
j = last;
arr.push(last);
}
console.log(arr.join(','));
}
fibonacci(1000);//1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987
既然会产生F数,那为什么不会做这一题呢?只要在for循环里判断一下有没有达到n即可,没达到就继续产生,然后把产生的F数存入一个数组,达到了就跳出循环并返回该数组
一个个加上去啊,超过n就停
1000位以后,那数得多大呀,循环什么的效率都低了吧
用迭代:f(n)=f(n-1)+f(n-2)
先说斐波那契数:
JavaScript中的循环判断是否小于n,在循环体内对i进行判断i<2的情况,后面你懂的。。
RTFM