废话少说,直接上代码
/**
* @description for循环
* @param start 开始
* @param end 结束
*/
const method1 = (start: number, end: number) => {
// 如果start大于end直接return
if (start > end) {
return;
}
let sum = 0;
for (let i = start; i <= end; i++) {
sum += i;
}
return sum;
};
/**
* @description 高斯算法 公式 项数(首项 + 末项) / 2
* @param start
* @param end
*/
const method2 = (start: number, end: number) => {
return ((end - start + 1) * (start + end)) / 2;
};
/**
* @description 递归算法
* @param start
* @param end
*/
const method3 = (start: number, end: number) => {
if (start > end) {
return;
} else {
if (end > start) {
return end + method3(start, end - 1);
} else {
return start
}
}
};
console.log(method1(8, 100)); // 5022
console.log(method3(8, 100)); // 5022
console.log(method2(8, 100)); // 5022