重点
三要素
- 确定递归函数的参数和返回值: 确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数, 并且还要明确每次递归的返回值是什么进而确定递归函数的返回类型。
- 确定终止条件: 写完了递归算法, 运行的时候,经常会遇到栈溢出的错误,就是没写终止条件或者终止条件写的不对,操作系统也是用一个栈的结构来保存每一层递归的信息,如果递归没有终止,操作系统的内存栈必然就会溢出。
- 确定单层递归的逻辑: 确定每一层递归需要处理的信息。在这里也就会重复调用自己来实现递归的过程
递归求1-100之间和
function num(n)//参数
{if(n==1) return 1//终止条件
return num(n-1)+n
}
let sum = num(100);
console.log(sum, "sum")
let sum = 0; // 创建一个变量,初始值为0,用来存放累加总和
function add(number) { // 接收传入的数字100
if (number >= 0) { //判断我传入的数字,是不是大于等于0,
sum += number; //如果满足条件,变量就加上我当前传入的值。
add(--number); //并且再次调用函数,把我开始传入的值,递减过后,再次传进函数
}
}
add(100);