//斐波那契数列
//n=0 f=0 n=1 f=1 n>1 f(n-1)+f(n-2)
//下面是递归实现,但递归实现是从上到底的,这个效率非常低,因为有好些数字被重复计算了,效率高的方法是用循环
int Fibonacci(int n)
{
if (n<0) {
return -1;
}
if (n==1) {
return 1;
}
if (n==0) {
return 0;
}
return Fibonacci(n-1)+Fibonacci(n-2);
}
//非递归效率实现fabonacci数列
int fibonacci(int n)
{
int result=-1;
int zero=0;
int one=1;
if (n<0) {
return -1;
}
if (n==0) {
return zero;
}
if (n==1) {
return one;
}
int next;
for (int i=2; i<=n; i++) {
next=zero+one;
one=next;
zero=one;
}
return result;
}
//斐波那契数列有一些应用,譬如一个青蛙,可以一次跳一格,也可以一次跳两格,问跳到n有多少种跳法