递归练习

给出exR1(6)的返回值。

public static String exR1(int n){
        if(n <=0){
                return "";
        }
        return exR1(n-3)+n+exR1(n-2)+n;

}


手动敲代码如下:(递归逻辑还需自己理清楚)

public class exercise {
        public static void main(String[] args) {
                System.out.print("输出结果:"+exR1(6));
        }

        public static String exR1(int n){
                if(n <=0){
                        return "";
                }
                return exR1(n-3)+n+exR1(n-2)+n;
        }

}

输出结果:311361142246;

编写一个递归的静态方法计算log(N!)的值:

public class logN {
        public static void main(String[] args) {
                    Scanner input =new Scanner(System.in);
                    System.out.print("请输入N:");
                    int a=input.nextInt();
                    System.out.print("log("+a+"!)结果为:"+logN(a));
         }
        public static double logN(int n){
                    if(n==0 ||n==1){
                            return 0;   //0的阶乘和1的阶乘都为1
                     }
                    return Math.log(n)+logN(n-1);
         }

}

请输入N:5
log(5!)结果为:4.787491742782046

猜你喜欢

转载自blog.csdn.net/trustf/article/details/81028434