# 题目描述

1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case 等关键字及条件判断语句(A?B:C)

# 代码实现

  1. 利用求和公式
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
  1. 递归
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