【剑指Offer】47、求1+2+3+...+n

题目描述:

求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。

题解:递归实现/利用Math
 1 //利用短路 && 来实现 if的功能
 2 public static int Sum_Solution(int n) {
 3         int sum=n;
 4         boolean flag=(sum>0)&&(sum+=Sum_Solution(--n))>0;
 5         return sum;
 6     }
 7 //利用Math实现n(n+1)
 8     public static int Sum_Solution01(int n) {
 9         int sum=n;
10         sum= (int) ((Math.pow(n,2)+n)/2);
11         return sum;
12     }
13 //测试
14 ublic static void main(String[] args) {
15         int n=100;
16         int i =Sum_Solution(n);
17         int i1 =Sum_Solution01(n);
18         System.out.print(i);
19         System.out.println(i1);
20     }
21 //结果:5050 5050

猜你喜欢

转载自www.cnblogs.com/Blog-cpc/p/12313492.html