LeetCode-面试题64-求1+2+到+n
# LeetCode-面试题64-求1+2+...+n
求 1+2+...+n
,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
示例1:
输入: n = 3
输出: 6
1
2
2
1
2
2
示例2:
输入: n = 9
输出: 45
1
2
2
1
2
2
限制:
1 <= n <= 10000
# 解题思路
很多运算不能够使用,这道题主要是考察的,能不能多角度的解决问题
不难想到for循环的方式可以有递归的实现,从n走到1就可以了
然而Python不受本题限制....一行搞定
# 解题思路2
高斯定理:(首项+末项)x项数/2
# Java代码
class Solution {
public int sumNums(int n) {
if(n==1) return 1;
return n+sumNums(n-1);
}
}
1
2
3
4
5
6
2
3
4
5
6
1
2
3
4
5
6
2
3
4
5
6
# Python代码
class Solution:
def sumNums(self, n: int) -> int:
return sum(range(1,n+1));
1
2
3
2
3
1
2
3
2
3
# Java代码2
class Solution {
public int sumNums(int n) {
return (n+1)*n/2;
}
}
1
2
3
4
5
2
3
4
5
1
2
3
4
5
2
3
4
5
编辑 (opens new window)
上次更新: 2022/11/18, 11:15:10
- 01
- SpringCache基本配置类05-16
- 03
- Rpamis-security-原理解析12-13