1 题目描述
求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
2 问题理解
-
方法一:递归实现1+2+…+n;
利用的是短路&&来实现if的功能,&&的特性,前面为假则后面就不执行 -
方法二:n(n+1)/2,递归实现n(n+1);
-
方法三,利用Math实现n(n+1)
利用的是Math.pow 函数,明确Math.pow(x,y)的作用就是计算x的y次方,其计算后是浮点数
3 解决代码
- 方法一代码:
public class Solution {
public int Sum_Solution(int n) {
return (int) (Math.pow (n, 2)+n)>>1;
}
}
- 方法三代码:
public static int Sum_Solution1(int n) {
return (int) (Math.pow(n, 2) + n) >> 1;
}