剑指 Offer 64. 求1+2+…+n|刷题打卡

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

一、题目描述:


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


示例 1:

输入: n = 3

输出: 6


示例 2:

输入: n = 9

输出: 45


注意:

1 <= n <= 10000


二、思路分析:


注意该题限制使用关键字!!!

如果不限制可以使用递归 + if。


if (n === 1) return 1;
 return n + sumNums(n - 1);


此外,除了关键字,我们还可能想到的就是运算符。

将if替换成&&运算符即可。


三、AC 代码:


function sumNums(n: number): number {
  n && (n += sumNums(n - 1));
  return n;
}


四、总结:


此题考查的是运算符的使用,对于做多题目后,限制关键字反而让人想不出更好的解决办法。


作者:ClyingDeng

链接:https://juejin.cn/post/6948718971239694350

来源:稀土掘金

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

目录
相关文章
【LeetCode】剑指 Offer(7)
【LeetCode】剑指 Offer(7)
37 0
【LeetCode】剑指 Offer(7)
【LeetCode】剑指 Offer(22)
【LeetCode】剑指 Offer(22)
62 0
【LeetCode】剑指 Offer(20)
【LeetCode】剑指 Offer(20)
61 0
【LeetCode】剑指 Offer(3)
【LeetCode】剑指 Offer(3)
55 0
【LeetCode】剑指 Offer(12)
【LeetCode】剑指 Offer(12)
47 0
【LeetCode】剑指 Offer(14)
【LeetCode】剑指 Offer(14)
43 0
【LeetCode】剑指 Offer(8)
【LeetCode】剑指 Offer(8)
37 0
【LeetCode】剑指 Offer(2)
【LeetCode】剑指 Offer(2)
53 0
【LeetCode】剑指 Offer(29)
【LeetCode】剑指 Offer(29)
60 0
【LeetCode】剑指 Offer(26)
【LeetCode】剑指 Offer(26)
66 0