一、题目描述:
求 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
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。