题解 | #求1+2+3+...+n#
求1+2+3+...+n
http://www.nowcoder.com/practice/7a0da8fc483247ff8800059e12d7caf1
方法一:递归
思路: 初始化res = 1
当n == 1时 为递归出口;递归+n-1
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param n int整型
# @return int整型
#
class Solution:
def Sum_Solution(self , n: int) -> int:
# write code here
if n == 1:
return n
return n + self.Sum_Solution(n - 1)
方法二:
利用位运算的短路: 逻辑运算符的短路效应: 常见的逻辑运算符有三种,即 “与 && ”,“或 || ”,“非 ! ” ;而其有重要的短路效应,如下所示:
if(A && B) // 若 A 为 false ,则 B 的判断不会执行(即短路),直接判定 A && B 为 false
if(A || B) // 若 A 为 true ,则 B 的判断不会执行(即短路),直接判定 A || B 为 true 本题需要实现 “当 n = 1n=1 时终止递归” 的需求,可通过短路效应实现。
n > 1 && sumNums(n - 1) // 当 n = 1 时 n > 1 不成立 ,此时 “短路” ,终止后续递归
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param n int整型
# @return int整型
#
class Solution:
def __init__(self):
self.res = 0
def Sum_Solution(self , n: int) -> int:
# write code here
n > 1 and self.Sum_Solution(n-1)
self.res += n
return self.res