同样,该算法实现可分为递归实现和非递归实现。
以下为递归实现,从n开始往后退:
/*** 计算第n个斐波那契数* @param n* @return*/private int fabonacciRecursion(int n){if(n==1 || n==2){return 1;}else{return fabonacciRecursion(n-1)+fabonacciRecursion(n-2);}}
非递归实现,从2开始计算,到n
/*** 正序相加,一直加到n* @param n* @return* @throws Exception */private static int fabonacci(int n) throws Exception{if(n<1){throw new Exception("illegal print in");}if(n==1 || n==2){return 1;}int num1 = 1;int num2 = 1;int temp = 2;for(int i = 3;i<=n; i++ ){temp = num1 + num2;num1 = num2;num2 = temp;}return temp;}