美文网首页
发散思维:求1+2+3+….+n

发散思维:求1+2+3+….+n

作者: I讨厌鬼I | 来源:发表于2019-05-08 00:10 被阅读0次

问题描述

看似很简单的问题,求1+2+3+...+n的和,但是有特殊条件,不可以使用乘除法、forwhileifelseswitchcase等关键字及条件判断语句(A?B:C)

输入:

10

输出:

55

思路:

提到不能用循环和乘除法,很快想到用递归,但是不能用条件判断语句如何确定递归出口。答案是利用短路原则:
(表达式1)&& (表达式2) 如果表达式1为假,则表达式2不会进行运算,即表达式2“被短路”
(表达式1)|| (表达式2) 如果表达式1为真,则表达式2不会进行运算,即表达式2“被短路”
那我们可以使用boolean flag = (ans>0)&&((ans += Sum_Solution(n-1))>0);当ans0的时候不计算后面的值,直接返回0,得到递归出口。

代码:

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

相关文章

  • 发散思维:求1+2+3+….+n

    问题描述 看似很简单的问题,求1+2+3+...+n的和,但是有特殊条件,不可以使用乘除法、for、while、i...

  • day9-函数作业

    编写函数,求1+2+3+…N的和def sum_n(n: int): sum1 = 0 for i i...

  • 求1+2+3+……+n

    题目描述 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case...

  • 求1+2+3+……+n

    题目要求:求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case...

  • 【剑指Offer】047——求1+2+3+...+n(进制转化)

    题目描述 求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关...

  • Day9 作业

    编写一个函数,求1+2+3+···+Ndef sum_func(num): """求一个数的前n项和""" ...

  • C常见题型

    ** 从终端输入一个 n ,求1+2+3+……+n结果。例如:输入5输出 1+2+3+4+5=15 ** ** 分...

  • Day9-作业

    编写函数,求1+2+3+…N的和 编写一个函数,求多个数中的最大值 编写一个函数,实现摇骰子的功能,打印N个骰子的...

  • Day9 作业

    编写函数,求1+2+3+…N的和 编写一个函数,求多个数中的最大值 编写一个函数,实现摇骰子的功能,打印N个骰子的...

  • 2019-03-15day10

    编写函数,求1+2+3+…N的和 编写一个函数,求多个数中的最大值 编写一个函数,实现摇骰子的功能,打印N个骰子的...

网友评论

      本文标题:发散思维:求1+2+3+….+n

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