1+1+2+3+5+...
思考:
我们的眼睛思考着,有一个规律。1+1=>2,1+2=>3,…,都是两个数产生一个新的数。假设我们用a,b表示第1,2个数。而且用s标识加的和。
用循环做,循环1个变量来方便点,所以我们考虑最后1个数。最后一个数是a+b的新值。
所以,求100以内的斐波那契,需要b<100.
然后是循环的重要内容:
我们的眼睛思考着,有一个规律。1+1=>2,1+2=>3,...,都是两个数产生一个新的数。
这是一个规律,是循环,我们发现,这个数要想相加,需要产生的新的数不断相加。
我们发现很麻烦,直接让产生的新的数为b,然后就是b不断相加。
写出下面伪代码:
int a,b,s;
while(old_b<100){
s+= old_b;
new_b = a + old_b;
a = old_b;//如何求这一步?
}
// 1+1+2+3+5
var a = 1,
b = 1,
s = a,
_temp; //+1
while (b < 100) {
s += b;
_temp = b;
b = a + b;
a = _temp;
}
console.log("s", s);
下面是循环变体: