# 题目描述
求 1+2+3+...+n
,要求不能使用乘除法、for、while、if、else、switch、case
等关键字及条件判断语句(A?B:C)
# 代码实现
- 利用求和公式
var __readline = require("readline-sync");
__readline.setDefaultOptions({ prompt: "" });
var readline = __readline.prompt;
console.log("请输入数字个数n: ");
const n = parseInt(readline());
function Sum_Solution(n) {
// write code here
var sum = Math.pow(n, 2) + n;
return parseInt(sum / 2); //相当于右移一位
}
const res = Sum_Solution(n);
console.log("结果为: ", res);
/*
请输入数字个数n:
100
结果为: 5050
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
- 递归
var sum = 0;
function Sum_Solution(n) {
// write code here
if(n === 0){
return 0;
}
sum += n;
Sum_Solution(n - 1); //短路原理
return sum;
}
const res = Sum_Solution(n);
console.log("结果为: ", res);
/*
请输入数字个数n:
100
结果为: 5050
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19