题解 | #求1+2+3+...+n#

求1+2+3+...+n

https://www.nowcoder.com/practice/7a0da8fc483247ff8800059e12d7caf1

题目

JZ64 求1+2+3+...+n

描述

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

数据范围: 0<n≤200

进阶: 空间复杂度 O(1) ,时间复杂度 O(n)

重点知识点

递归和return 语句执行条件判断

递归使用

函数自己调用自己,但条件改变,趋近于结束

条件判断

倒数第二次递归时,返回0,最后一次递归时,&&左边的n=0,则整个语句为假,不会再执行判断后面的条件

代码

#include <iostream>

class Solution {
public:
    int Sum_Solution(int n) {
        //数学解决方法
        //return n*(n+1)/2;

        //递归解决
        n&&(n+=Sum_Solution(n-1));  //n=0时为假,右边就不会进入递归了。
        return n;
    }
};
#刷题#
刷题 - 解题 文章被收录于专栏

记录遇到的题目,解题思路和相关知识点

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务