剑指offer—求1+2+3+...+n

华电北风吹
天津大学认知计算与应用重点实验室
日期:2015/10/8

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

解析:没啥难度,就是用普通的递归就可以,只不过普通的需要判断n==0的时候不再递归,这里利用一下&&,当&&前面的逻辑值为假则不再执行&&后面的代码。

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

你可能感兴趣的:(#,剑指offer)