求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
方法1:
使用try{}catch{}
public int Sum_Solution(int n) {
try
{
int[] array = new int[n-2];
return n+Sum_Solution(n-1);
}
catch(Exception e)
{
return 1;
}
}
方法2:
使用逻辑运算符&&,短路
public int Sum_Solution(int n)
{
int sum = n;
boolean ans = (n>0)&&((sum+=Sum_Solution(n-1))>0);
return sum;
}
其他方法
1、计算公式(n+1)*n/2
2、构造函数