求 1+2+...+n
,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
示例 1:
输入: n = 3 输出: 6
示例 2:
输入: n = 9 输出: 45
解题思路:
1:利用sizeof返回n*(n+1),然后右移。
class Solution {
public:
int sumNums(int n) {
bool arr[n][n+1];
return sizeof(arr)>>1;
}
};
2:利用短路运算符,递推回溯
class Solution {
int res;
public int sumNums(int n) {
boolean x= n>1&&sumNums(n-1)>0;
res=res+n;
return res;
}
}