java基础-递归

package com.zwj.java;

import java.io.File;

// 递归的讲解
public class HelloWorld {


    public static void main(String[] args) {

      //  System.out.println( method(5));
      //  System.out.println(forImport(6));
        tree(new File("D:/workspace"),0);
    }

        public  static int method(int  n){
           if(n==1)
                   return 1;

            else
                  return  n*method(n-1);

        }


        /*
           递归调用指在方法执行过程中出现该方法本身的调用例如:
            求 Fibonacci 数列:1.1.2.3.5.8,、、第40个数的值。 数列满足递推公式:
            F1=1,F2=1     fn=fn-1+ fn-2  (n>2)

         */


        public static int f(int n){
         if (n==1||n==2)
                return 1;
         else
             return f(n-1)+f(n-2);
        }


    /**
     *  用for循环的实现
     */

      public static  long  forImport(int n){
         if (n==1||n==2)
                   return 1;
         long f1=1L;
         long f2=1L;
         long f=0;

         for (int i=2;i<n;i++){
             f=f2+f1;
             f1=f2;
             f2=f;
         }
         return f;

      }


    /**
     * 递归文件夹和文件名
     *
     */



      private static  void  tree(File file,int lever){
          File[] child=file.listFiles();
          String preStr="";
          for (int i=0;i<lever;i++)
           preStr  += "    ";
          for (int i=0;i<child.length;i++){
              System.out.println(preStr+child[i]);
              if (child[i].isDirectory()){
                  tree(child[i],lever+1);
          }
      }
    }
}

 

posted @ 2018-08-07 18:30  周无极  阅读(177)  评论(0编辑  收藏  举报