zoukankan      html  css  js  c++  java
  • 递归

    1    递归的概述

    递归,指在当前方法内调用自己的这种现象。

    递归分为两种,直接递归和间接递归。

    直接递归称为方法自身调用自己。间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法。

    注意:

    递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。

    在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。

    练习1:递归计算100以内的和,和斐波那契数列

    public class Demo01 {
        //递归计算1-100的和
        public static void main(String[] args) {
            System.out.println(add(6));
        }
        public static int get(int n){
            if(n==1){
                return 1;
            }
            return n+get(n-1);
        }
        //递归斐波那契数列
        public static int add(int n){
            if(n==1){
                return 1;
            }
            if(n==2){
                return 1;
            }
            return add(n-1)+add(n-2);
        }
    }

    练习2:递归遍历文件夹下所有文件

    public class FileDemo2 {
        public static void main(String[] args) {
            File file = new File("d:\test");
            getFileAll(file);
        }
        //获取指定目录以及子目录中的所有的文件
        public static void getFileAll(File file) {
            File[] files = file.listFiles();
            //遍历当前目录下的所有文件和文件夹
            for (File f : files) {
                //判断当前遍历到的是否为目录
                if(f.isDirectory()){
                    //是目录,继续获取这个目录下的所有文件和文件夹
                    getFileAll(f);
                }else{
                    //不是目录,说明当前f就是文件,那么就打印出来
                    System.out.println(f);
                }
            }
        }
    }
  • 相关阅读:
    HTML5结构
    HTML5新增的非主体元素header元素、footer元素、hgroup元素、adress元素
    CF GYM 100703G Game of numbers
    CF GYM 100703I Endeavor for perfection
    CF GYM 100703K Word order
    CF GYM 100703L Many questions
    CF GYM 100703M It's complicate
    HDU 5313 Bipartite Graph
    CF 560e Gerald and Giant Chess
    POJ 2479 Maximum sum
  • 原文地址:https://www.cnblogs.com/quanjunkang/p/10654975.html
Copyright © 2011-2022 走看看