文章目录
- 前言
- 一、递归的介绍
- 二、递归模型(n!)
- 1 阶乘的定义:
- 2. 阶乘的递归代码实现
- 3. 递推与回归的内部逻辑
- 三、练习
前言
本文将学习递归算法。在计算机科学中,递归算法是一种将问题不断分解
为同一类子问题来解决问题的方法。递归方法可解决许多计算机科学问题,因此它是计算机科学中非常重要的概念。
一、递归的介绍
-
概念:如果一个对象部分包含它自己,或者利用自己定义自己,则称这个对象是递归的
-
应用场景:要解决的问题和其子问题具有相似性的时候,通过调用自己求出问题解的方法。它是通过拆分解决一个问题的更小实例来解决一个大的问题的解的算法(大事化小)
-
递归的两个过程:
-
调用过程(递推)
-
向上传递结果的过程。(回归)
-
-
递归的两个部分:
-
递归出口:调用过程终止的节点(限制条件)
-
递归体:确定递归求解时的递推关系
-
二、递归模型(n!)
1 阶乘的定义:
阶乘:一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。
比如:
1!= 1
2!= 2×1
3!= 3×2×1
……
阶乘的递推公式:
2. 阶乘的递归代码实现
Recursion.java文件
public class Recursion {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
input.close();
System.out.println(fact(n));
}
public static int fact (int n){
if(n == 1){
return 1;
}else{
return n*fact(n-1);
}
}
}
3. 递推与回归的内部逻辑
以下内容来自b站up鹏哥C语言
C语言从入门到精通
三、练习
写一个计算器,要求实现加减乘除的功能,并且能够循环接收新的数据,通过用户交互实现