题目描述:
求1+2+3+...+n,要求不能使用乘除法、for、while、if、 else、switch、case等关键字及条件判断语句(A?B:C)。
解题思路:
1、1+2+。。。+n=(n^2+n)>>1 右移一位相当于除以2.
2、&&进行递归,flag = (n>0) && (sum+=Sum_Solution2(n-1))>0 通过&&完成判断+递归
剑指offer提交的答案:
- public class Solution {
- public int Sum_Solution(int n) {
- if(n==0) return 0;
- int sum=n;
- boolean flag = (n>0) && (sum+=Sum_Solution(n-1))>0;
- return sum;
- }
- }
本机测试:
- package pratice715;
- public class add1N715 {
- /**
- * 题