美文网首页
求1+2+…+n

求1+2+…+n

作者: youzhihua | 来源:发表于2020-03-05 10:49 被阅读0次

    题目描述

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

    思路

    1.此问题可以使用递归思想求解,当加到0时,停止递归即可。
    2.既然不可以使用流程控制的关键字,我们可以使用&&的短路操作来代替流程控制。

    Java代码实现

    class Solution {
        public int sumNums(int n) {
            int res = 0;
            boolean flag = (n != 0) && ((res = n + sumNums(n-1))>0);
            return res;
        }
    }
    

    Golang代码实现

    func sumNums(n int) int {
        var fun func(res *int,n int) bool
        fun = func(res *int,n int) bool {
            *res = *res + n;
            return (n!=0)&&(fun(res,n-1))
        }
        res := 0
        fun(&res,n)
        return res
    }
    

    相关文章

      网友评论

          本文标题:求1+2+…+n

          本文链接:https://www.haomeiwen.com/subject/elutrhtx.html