Java教程

1, 1, 2, 3, 5, 8, 13, 21, 34......获取第N位的值,算法的递归解决

本文主要是介绍1, 1, 2, 3, 5, 8, 13, 21, 34......获取第N位的值,算法的递归解决,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
//静态的计算次数;
private static int start = 0;
//main方法
public static void main(String[] args) {
    System.out.println(test(9));
}
//测试方法
public static  int test(int end) {
  start = 0;
  //小于3位无意义,直接返回1
    if (end < 3) {
        return 1;
    }
  //初始化数组
    int[] a = new int[end];
    a[0]=1;
  start+=1;

    a[1]=1;
  start+=1;
  //当计算位数大于2,调用递归方法
    return test(a, end);
}
//递归方法
public static int test(int[] a, int end) {
   //递归的终止条件
    if (start == end) {
     //返回所需计算的值
        return a[end - 1];
    }

  //规律:第N位的值=(N-1)位+(N-2)位
    a[start ] = a[start-1] + a[start - 2];

  //记录计算次数
    start+=1;

  //开始递归
    return test(a, end);
}
这篇关于1, 1, 2, 3, 5, 8, 13, 21, 34......获取第N位的值,算法的递归解决的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!