JAVA_递归

递归斐波那契数列

 1 public class Fab {
 2 
 3     public static void main(String[] args) {
 4         System.out.println(fab(50));
 5     }
 6     
 7     public static long fab(int n){
 8         if ( n == 1 || n == 2)
 9             return 1;
10         else
11             return fab(n - 1) + fab(n - 2);
12     }
13 
14 }

 

非递归斐波那契数列

 1 public class Fab2 {
 2 
 3     public static void main(String[] args) {
 4         System.out.println(f(50));
 5     }
 6     
 7     public static long f(int n){
 8         if(n == 1 || n == 2)
 9             return 1;
10 
11         long f1 = 1L;
12         long f2 = 1L;
13         long f = 0;
14 
15         for(int i = 3; i <= n; i++) {
16             f = f1 + f2;
17             f1 = f2;
18             f2 = f;
19         }
20         
21         return f;
22     }
23 }

 

感觉递归比较慢

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。