题目描述
求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
解题思路
可以利用pow()方法和移位运算
利用求和公式 (1+n)*n/2= (n²+n)>>1
利用递归和短路求值原理
int sum=n;
sum>0&&((sum+=sum(n-1))>0)
程序实现
pow()方法和移位运算
public int Sum_Solution(int n) {
n=(int)(Math.pow(n,2)+n)>>1;
return n;
}