zoukankan      html  css  js  c++  java
  • Java——递归

    递归

    定义:

    定义方法时,在方法内部调用方法本身,称之为递归.

    public void show(){ 
        System.out.println("aaaa"); 
        show(); 
    }
    

    作用

    • 它通常把一个大型复杂的问题,层层转换为一个与原问题相似的,规模较小的问题来求解。递归策略只需要少量的程序就可以描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。

    注意事项

    • 在递归中,不能无限制的调用自己,必须要有边界条件,能够让递归结束,因为每一次递归调用都会在栈内存开辟新的空间,重新执行方法,如果递归的层级太深,很容易造成栈内存溢出。

    需求

    请定义一个方法,使用递归完成求N的阶乘;

    分析:
    1!: 	1
    2!: 	2*1=2*1!
    3!: 	3*2*1=3*2!
    4!: 	4*3*2*1=4*3!
    ...
    n!: 	n*(n-1)*(n-2)...*2*1=n*(n-1)!
    所以,假设有一个方法factorial(n)用来求n的阶乘,那么n的阶乘还可以表示为n*factorial(n-1)
    

    代码实现

    // 递归求n的阶乘
    public class Test {
        public static void main(String[] args) throws Exception {
            int result = factorial(5);
            System.out.println(result);
        }
    
        public static int factorial(int n) {
            if (n == 1) {
                return 1;
            }
            return n * factorial(n - 1);
        }
    }
    
  • 相关阅读:
    windows修复移动硬盘文件夹打不来的问题
    secureCRT设置
    core dump配置
    ssh免密登陆的问题解决
    crontab的环境变量
    tmux配置
    shell的技巧笔记
    记一次route配置不起作用的问题解决过程
    crontab笔记
    Python中的一个诡异编码问题的追踪
  • 原文地址:https://www.cnblogs.com/momo-88/p/13433884.html
Copyright © 2011-2022 走看看