求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
IDEA
公式sum=(n+1)n/2=(n^2+n)/2
1.要求不能用乘除,除以2可以用左移代替;
2.不能循环,用递归
3.不能条件判断,用逻辑与短路特性
CODE
public class Solution {
public int Sum_Solution(int n) {
int sum=(int)(Math.pow(n,2)+n);
return sum>>1;
}
}
public class Solution {
public int Sum_Solution(int n) {
int sum=n;
boolean a=(n>0)&&((sum+=Sum_Solution(n-1))>0);//如果n=0,则返sum=n=0;
return sum;
}
}