这里演示,使用递归,求和 0 递增加到100的和dome,至于你,需要使用递归求多少范围的和,取决于,你的传参,以及判断条件,代码思路我分享以下4种,我以0-100累加演示。
方法一:
function calc(number) { //接收100
if (number == 1) { //判断如果传入的值等于1的时候
return 1; //就结束函数,并且返回值1
}
return number + calc(number - 1); //100+99 98 如果不满足上面的条件,就执行这里,传入的当前数字,加上当前数字减一,并且再次调用函数,传入的参数就是,当前数字减一,循环判断执行,直到不满足条件,结束函数。
}
let sum = calc(100); //一个变量调用函数,并且传参100
console.log(sum); //输出累加的结果
方法二:
let sum = 0, number = 0; //先创建两个变量,初始值为0
function calc(a) { // 接收一个100
sum += number; // 变量一 +=变量二
if (number < a) { // 然后再判断,变量二是不是小于100,如果小于,就自增,并且再次调用函数,继续循环判断,直到不满足条件,结束函数。
number++;
calc(100);
}
}
calc(100); //调用函数,传入一个100
console.log(sum); //求和结果
方法三:
let sum = 0; // 创建一个变量,初始值为0,用来存放累加总和
function calc(number) { // 接收传入的数字100
if (number >= 0) { //判断我传入的数字,是不是大于等于0,
sum += number; //如果满足条件,变量就加上我当前传入的值。
calc(--number); //并且再次调用函数,把我开始传入的值,递减过后,再次传进函数
}
}
calc(100); //调用函数,传入一个数字100,
console.log(sum); //输出累加结果
方法四:
let sum = 0;
function foo(params) { //接收100
if (params <= 100 && params > 0) { //判断如果。我输入的值,小于等于100,并且>0
sum += params; //sum(0)就累加上当前接受的值
params--; //加完过后,再自减
foo(params); //再把自减后的值,再次传入形参,调用函数
}
}
foo(100); //调用函数,传入一个数字100
console.log(sum); //求和结果