题目
题号:47
题目名:求1+2+3+…+n
编程语言
Java
题目描述
求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
初次思路
这里简单的就是使用一个循环搞定,但是无法找到出口。
所以重点就是要找到函数的出口
去掉题目中的那些判断逻辑,可以想到的是双目运算法&&有短路作用,可以把出口条件放在&&的左边,执行条件放在右边
解题代码
public class Solution {
public int Sum_Solution(int n) {
int sum =n;
boolean b = n>0 && ((sum+=Sum_Solution(n-1))>0);//短路现象,只要&&前面逻辑是false,直接返回false,后面不执行
return sum;
}
}
算法练习代码我都开源在码云上,有需要的朋友可以看看