斐波那契数列调用深度学习笔记

来源:互联网 发布:jsp和php的区别 编辑:程序博客网 时间:2024/06/05 14:35

今天研究了下斐波那契数列的调用深度,自己写了个代码测试了下斐波拉契的0-10项,

package ChangeSort;

public class Fi {
 static int m=0;
 public static void main(String[] args){
  for(int i=0;i<=10;i++){
   System.out.println("fun("+i+")=: "+fun(i));
   System.out.println("m=: "+m);
   m=0;
  }
 }
 static int fun(int i){
  if(i==0) {
   m++;
   return 0;
  }
  if(i==1) {
   m++;
   return 1;  
  }
  else {
   m++;
   return fun(i-1)+fun(i-2);
  }
  }
 }

测试结果如下:

fun(0)=: 0
m=: 1
fun(1)=: 1
m=: 1
fun(2)=: 1
m=: 3
fun(3)=: 2
m=: 5
fun(4)=: 3
m=: 9
fun(5)=: 5
m=: 15
fun(6)=: 8
m=: 25
fun(7)=: 13
m=: 41
fun(8)=: 21
m=: 67
fun(9)=: 34
m=: 109
fun(10)=: 55
m=: 177
  首先斐波拉契的深度是两个子函数的深度和+1,即f(2)=f(0)+f(1)+1=1+1+1=3; f(n)=f(n-1)+f(n-2)+1

接下来准备研究下斐波拉契数列函数写的优化方案。


0 0