题目描述:求
1
+
2
+
3
+
.
.
.
+
n
1+2+3+...+n
1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)
问题分析:
1
+
2
+
.
.
.
+
n
1+2+...+n
1+2+...+n最直观的求解方法是
(
1
+
n
)
∗
n
/
2
(1+n)*n/2
(1+n)∗n/2,考虑到题目不允许用乘除法和循环,如何实现“循环加”的过程呢?可以借助逻辑与的短路来实现“循环加”的终止。
代码如下:
public class Solution
{
public static void main(String[] args)
{
int n =3;
Solution sl = new Solution();
System.out.println(sl.Sum_Solution(n));
}
public int Sum_Solution(int n) {
int sum = n;
boolean temp = (n>0)&&((sum+=Sum_Solution(n-1))>0);
return sum;
}
}