求 1+2+...+n ,
要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
示例 1:
输入: n = 3
输出: 6
示例 2:
输入: n = 9
输出: 45
限制:1 <= n <= 10000
解法:1+2+.....+n=n(n+1)/2,用右移代替除法,用乘幂代替乘法
C++
class Solution {
public:
int sumNums(int n) {
return ((int)(std::pow(n, 2)+n))>>1;
}
};
执行用时:0 ms ,在所有 C++ 提交中击败了100.00%的用户
内存消耗:7.4 MB,在所有 C++ 提交中击败了100.00%的用户