30、java中递归算法

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
原文地址:https://www.cnblogs.com/caoyc/p/5341610.html