跳到主要内容

LCR189.设计机械累加器

链接:LCR189.设计机械累加器
难度:Medium
标签:位运算、递归、脑筋急转弯
简介:求 1+2+...+n ,要求不能使用乘除法、for、while、if、else、switch、case 等关键字及条件判断语句(A?B:C)。

题解 1 - typescript

  • 编辑时间:2020-06-02
  • 执行用时:56ms
  • 内存消耗:32.2MB
  • 编程语言:typescript
  • 解法介绍:利用等差数列直接求和。
var sumNums = function (n: number): number {
return ((1 + n) * n) / 2;
};

题解 2 - typescript

  • 编辑时间:2020-06-02
  • 执行用时:80ms
  • 内存消耗:34.7MB
  • 编程语言:typescript
  • 解法介绍:递归求和。
var sumNums = function (n: number): number {
n && (n += sumNums(n - 1));
return n;
};

题解 3 - typescript

  • 编辑时间:2020-06-02
  • 执行用时:64ms
  • 内存消耗:34.9MB
  • 编程语言:typescript
  • 解法介绍:递归求和。
var sumNums = function (n: number): number {
const c = (num: number, count: number): number => (count === 1 ? num : num + c(num, count - 1));
return c(n, n + 1) >> 1;
};