LeetCode面试题64.求1+2+…+n

题目要求

 

 

算法分析

不让用乘除,不让用for while if else switch case

首先想到递归,递归需要有终止条件,

可以利用&&的特性,左边为false,来屏蔽掉右边的代码,来实现终止功能.

 

代码展示(C#)

public class Solution {
    public int SumNums(int n) {
        bool flag = n > 0 && (n += SumNums(n - 1)) > 0;
        return n;
    }
}

代码展示(C++)

class Solution {
public:
    int sumNums(int n) {
        n && (n+=sumNums(n-1))>0;
        return n;
    }
};

 

提交结果

 

 

posted on 2020-06-02 01:10  King__R  阅读(163)  评论(0编辑  收藏  举报