剑指 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)
45 0
【LeetCode】剑指 Offer(7)
【LeetCode】剑指 Offer(3)
【LeetCode】剑指 Offer(3)
60 0
【LeetCode】剑指 Offer(14)
【LeetCode】剑指 Offer(14)
51 0
|
搜索推荐
【LeetCode】剑指 Offer(21)
【LeetCode】剑指 Offer(21)
83 0
【LeetCode】剑指 Offer(1)
【LeetCode】剑指 Offer(1)
65 0
【LeetCode】剑指 Offer(20)
【LeetCode】剑指 Offer(20)
67 0
【LeetCode】剑指 Offer(13)
【LeetCode】剑指 Offer(13)
58 0
【LeetCode】剑指 Offer(18)
【LeetCode】剑指 Offer(18)
55 0
【LeetCode】剑指 Offer(2)
【LeetCode】剑指 Offer(2)
63 0
|
算法
【LeetCode】剑指 Offer(5)
【LeetCode】剑指 Offer(5)
59 0