斐波那契数列
递归思路:
一个递归函数一定可以分解为基础与递归两个部分。而递归部分每次调用都要使其参数向基础部分接近。对于简单的递归函数,基础部分就是if的部分,递归部分就是return部分。
斐波那契数列的函数表示为:
对应的代码:
1 int fib(int N) 2 { 3 if(N == 1 || N == 0)return 1; 4 return fib(N-1) + fib(N-2); 5 }
循环思路:
新的结果result等于旧的result结果加上前一项的值。将结果记为result ,将前一项的值记flag(初始为1) ,即result = flag + result;实现的result的推进。在result推进后,同样对于原来的前一项值flag也要推进。flag要等与旧的result的值。为此我们需要早result没有改变前即result = flag + result;先保留一份result的值记作flag2,在result推进后将将保留的result的值赋给flag,实现flag的推进。
图解:

对应的代码:
int fib_g(int N) { int flag = 1,flag2 = 0; int result = 0; for(int i=1;i<=N;i++) { flag2 = result; result = flag + result; flag = flag2; } return result; }

浙公网安备 33010602011771号