package five.com;public class Recursive {
//递归算法
public static int fn(int n) {
if (n == 0) {
return 1;
} else if (n == 1) {
return 4;
} else {
return 2* fn(n - 1) + fn(n - 2);
}
} /**
 * @param args
 */

public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(fn(3)); // fn(3)=2*fn(2)+fn(1)
// fn(2)=fn(1)+fn(0) // fn(3)=2*(fn(1)+fn(0))+fn(1)=2*(4+1)+4=14 }}
------------------------------------------------------------------
系统算出是22,我自己算出是14,不了解,xdjm们帮解释下,最好详细点

解决方案 »

  1.   

    fn(3)=2*fn(2)+fn(1) 
         =2*(2*fn(1)+fn(0))+fn(1)
         =2*(2*4+1)+4
         =22
      

  2.   

    fn(0)=1,fn(1)=4,fn(2)=2fn(1)+fn(0)=9,fn(3)=2fn(2)+fn(1)=22
      

  3.   

    引用 1 楼 scarecrow_ss 的回复:
    fn(3)=2*fn(2)+fn(1)
        =2*(2*fn(1)+fn(0))+fn(1)
        =2*(2*4+1)+4
        =22
    正解
      

  4.   

    f(0)=1
    f(1)=4
    f(2)=2*f(1)+f(0)
    f(3)=2*f(2)+f(1)=2*(2*f(1)+f(0))+f(1)=5*f(1)+2*f(0)=5*4+2*1=22
      

  5.   


    2到哪里去了……显然应该是fn(2)=2*fn(1)+fn(0)
      

  6.   

    f(0)=1 
    f(1)=4 
    f(2)=2*f(1)+f(0) 
    f(3)=2*f(2)+f(1)=2*(2*f(1)+f(0))+f(1)=5*f(1)+2*f(0)=5*4+2*1=22 
      

  7.   

    LZ粗心算错了:fn(2)=fn(1)+fn(0) 应该是2fn(1)+fn(0)