30、java中遞迴演算法

weixin_34120274發表於2016-03-31

1、已知有一個數列f(0)=1,f(1)=4,f(n+2)=2*f(n+1)+f(n),其中n是大於0的正數,求f(10)的值。

    分析:設x=n+2 => f(x)=2*f(n-1)+f(n-2)

 1     public static void main(String[] args){
 2         
 3         System.out.println(F(10));
 4     }
 5     
 6     public static int F(int n){
 7         if(n==0){
 8             return 1;
 9         }else if(n==1){
10             return 4;
11         }else{
12             return 2*F(n-1)+F(n-2);
13         }
14     }
View Code

 

2、這裡有一個將10進位制正整數轉換成二進位制

 1     public static void main(String[] args){
 2         
 3         System.out.println(Fn(100));
 4     }
 5     
 6     
 7     public static String Fn(int n){
 8         if(n==0){
 9             return "";
10         }
11         else{
12             return Fn(n/2)+n%2;
13         }
14     }
View Code

 

相關文章