leetcode 力扣 1345 求1+2+…+n 题解 算法题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

题目:求1+2+…+n
求1+2+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。

示例 1:
输入: n = 3
输出: 6
示例 2:
输入: n = 9
输出: 45
限制:
• 1 <= n <= 10000
语言:C++
class Solution {
public:
int sumNums(int n) {
return n == 0 ? 0 : n + sumNums(n - 1);
}
};
语言:C++
class Solution {
public:
int sumNums(int n) {
n && (n += sumNums(n-1));
return n;
}
};
语言:C++
int quickMulti(int A, int B) {
int ans = 0;
for ( ; B; B >>= 1) {
if (B & 1) {
ans += A;
}
A <<= 1;
}
}
语言:Java
class Solution {
public int sumNums(int n) {
boolean flag = n > 0 && (n += sumNums(n - 1)) > 0;
return n;
}
}
语言:Java
class Solution {
public int sumNums(int n) {
int ans = 0, A = n, B = n + 1;
boolean flag;
flag = ((B & 1) > 0) && (ans += A) > 0;
A <<= 1;
B >>= 1;
flag = ((B & 1) > 0) && (ans += A) > 0;
A <<= 1;
B >>= 1;
flag = ((B & 1) > 0) && (ans += A) > 0;
A <<= 1;
B >>= 1;
flag = ((B & 1) > 0) && (ans += A) > 0;
A <<= 1;
B >>= 1;
flag = ((B & 1) > 0) && (ans += A) > 0;
A <<= 1;
B >>= 1;
flag = ((B & 1) > 0) && (ans += A) > 0;
A <<= 1;
B >>= 1;
flag = ((B & 1) > 0) && (ans += A) > 0;
A <<= 1;
B >>= 1;
flag = ((B & 1) > 0) && (ans += A) > 0;
A <<= 1;
B >>= 1;
flag = ((B & 1) > 0) && (ans += A) > 0;
A <<= 1;
B >>= 1;
flag = ((B & 1) > 0) && (ans += A) > 0;
B >>= 1;
flag = ((B & 1) > 0) && (ans += A) > 0;
A <<= 1;
B >>= 1;
flag = ((B & 1) > 0) && (ans += A) > 0;
A <<= 1;
B >>= 1;
flag = ((B & 1) > 0) && (ans += A) > 0;
A <<= 1;
B >>= 1;
flag = ((B & 1) > 0) && (ans += A) > 0;
A <<= 1;
B >>= 1;
return ans >> 1;
}
}
语言:golang
func sumNums(n int) int {
ans := 0
var sum func(int) bool
sum = func(n int) bool {
ans += n
return n > 0 && sum(n-1)
}
sum(n)
return ans
}
语言:golang
func sumNums(n int) int {
ans, A, B := 0, n, n + 1
addGreatZero := func() bool {
ans += A
return ans > 0
}
_ = ((B & 1) > 0) && addGreatZero()
A <<= 1
B >>= 1
_ = ((B & 1) > 0) && addGreatZero()
A <<= 1
B >>= 1
_ = ((B & 1) > 0) && addGreatZero()
B >>= 1
_ = ((B & 1) > 0) && addGreatZero()
A <<= 1
B >>= 1
_ = ((B & 1) > 0) && addGreatZero()
A <<= 1
B >>= 1
_ = ((B & 1) > 0) && addGreatZero()
A <<= 1
B >>= 1
_ = ((B & 1) > 0) && addGreatZero()
A <<= 1
B >>= 1
_ = ((B & 1) > 0) && addGreatZero()
A <<= 1
B >>= 1
_ = ((B & 1) > 0) && addGreatZero()
A <<= 1
B >>= 1
_ = ((B & 1) > 0) && addGreatZero()
A <<= 1
B >>= 1
_ = ((B & 1) > 0) && addGreatZero()
A <<= 1
B >>= 1
_ = ((B & 1) > 0) && addGreatZero()
A <<= 1
B >>= 1
_ = ((B & 1) > 0) && addGreatZero()
A <<= 1
B >>= 1
_ = ((B & 1) > 0) && addGreatZero()
A <<= 1
B >>= 1
return ans >> 1
}
语言:python
def sumNums(n):
return (1+ n) * n //2
语言:python
def sumNums(n):
res =0
for i in range(1, n +1):
res += i
return res
语言:python
def sumNums(n):
if n ==1: return1
n += sumNums(n -1)
return n
语言:php
class S olution {
/**
* @param Integer $n
* @return Integer
*/
function sumNums($n) {
return array_sum(range(1,$n));
}
}
语言:javascript
/**
* @param{number} n
* @return {number}
*/
var sumNums =function(n) {
return n===1|| (sumNums(n-1) + n); };。

相关文档
最新文档