2、斐波那契数列求第n位数值

2018-03-30  本文已影响0人  圣巨猿

斐波那契数列


  1. 什么是斐波那契数列?
0,1,1,2,3,5......;数学函数:f(n) = f(n-1) + f(n-2);
  1. 非递归实现
int fibonacci(int n) {
    int result =0;
    int a =1;
    int b =1;

    if(n ==0) {
        return result;
    }
    if(n ==1||n ==2) {
        result = a;
        return result;
    }

    for(int i =3; i < n; i++) {
        result = a + b;
        a = b;
        b = result;
    }

    return result;
}
  1. 递归实现
int recursiveFibonacci(int n) {
    if(n ==0) {
        return 0;
    }

    if(n ==1||n ==2) {
        return 1;
    }

    return recursiveFibonacci(n - 1) + recursiveFibonacci(n - 2);
}
  1. 其他斐波那契数列问题
int jumpFloorII(int number) {
    if (number < 2)
        return 1;
    int a = 1;
    int r = 0;
    for (int i = 2; i <= number; i++) {
        r = 2*a;
        a = r;
    }
    return r;
}
上一篇 下一篇

猜你喜欢

热点阅读