求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
示例 1:
输入: n = 3
输出: 6
示例 2:
输入: n = 9
输出: 45
限制:
1 <= n <= 10000
这道题给了这么多限定条件,显然是要用递归来做,但是递归也不能用判定语句,那么可以用&&语句来执行,
class Solution {
public:
int sumNums(int n) {
n&&(n+=sumNums(n-1));
return n;
}
};
无循环递归求和
本文探讨了一种在严格限制条件下实现从1累加到n的算法,利用C++语言特性,通过递归且不使用传统控制语句完成任务。示例展示了如何巧妙运用&&运算符实现递归调用,避免了显式的条件判断。
1164

被折叠的 条评论
为什么被折叠?



