题解 | #求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
全部评论

相关推荐

04-12 13:42
江南大学 C++
点赞 评论 收藏
分享
04-09 09:47
门头沟学院 Java
Arbelite_:2-3k,这工资还不如去摇奶茶
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务