zoukankan      html  css  js  c++  java
  • Java递归:一个NB自慰的操作

    递归的核心思想:自身调用自身

    示例一:求5的阶乘

    常规方法:

    使用while循环

     1 public class Demo01 {
     2 
     3      public static void main(String[] args) {
     4          int result = test(5);
     5          System.out.println("结果是"+result);
     6      }
     7      
     8      public static int test(int num) {
     9         int result=1;
    10         while (num>0) {
    11             result=result*num;
    12             num--;
    13         }
    14         return result;
    15     }
    16 }

     使用递归

     1 public class Demo01 {
     2 
     3      public static void main(String[] args) {
     4          int result = print(5);
     5          System.out.println("结果是"+result);
     6      }
     7      
     8      public static int print(int num) {
     9          if(num==1) {
    10              return 1;
    11          }else {
    12              return num*print(num-1);
    13          }
    14      }
    15 }

    示例二:

    列出一个文件夹的子孙文件与目录

     1 public class Demo01 {
     2 
     3      public static void main(String[] args) {
     4          File dir=new File("F:\aa");
     5          listFiles(dir,"|--");
     6      }
     7      
     8      public static void listFiles(File dir, String space) {
     9          File[] files = dir.listFiles();
    10          for(File file : files) {
    11              if(file.isFile()) {
    12                  System.out.println(space+file.getName());
    13              }else if(file.isDirectory()) {
    14                  listFiles(file, "|  "+space);
    15              }
    16          }
    17      }
    18 }

    示例三:

    删除一个非空的文件夹

     1 public class Demo01 {
     2 
     3      public static void main(String[] args) {
     4          File dir=new File("F:\aa");//创建对象并指定
     5          deleteDir(dir);
     6      }
     7      
     8      public static void deleteDir(File dir) {
     9          File[] files = dir.listFiles();  //列出了所有的子文件
    10          for(File file : files) {       //文件遍历查询
    11              if(file.isFile()) {        //如果是文件,执行删除操作
    12                  file.delete();
    13              }else if(file.isDirectory()) {     //如果是文件夹,则再调用自身方法
    14                  deleteDir(file);  //括号中的file只是名字,之所以为什么不是dir,只是将上面的名字又带入了deleteDir方法中
    15              }
    16          }
    17      }
    18 }
  • 相关阅读:
    PHP中的$_POST变量
    leetcode problem 32 -- Longest Valid Parentheses
    leetcode problem 31 -- Next Permutation
    leetcode problem 11 Container With Most Water
    leetcode problem 10 Regular Expression Matching(动态规划)
    leetcode problem 6 ZigZag Conversion
    leetcode problem (5) Longest Palindromic Substring
    leetcode problem (2-4)
    extern “C”的作用
    C++11中新特性之:unordered_map
  • 原文地址:https://www.cnblogs.com/szdszz/p/9135355.html
Copyright © 2011-2022 走看看