题解 | #《剑指offer》求1+2+3+...+n#

求1+2+3+...+n

http://www.nowcoder.com/practice/7a0da8fc483247ff8800059e12d7caf1

描述:

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

思路:位运算。

  • 不能用等差数列的求和公式,虽然除2可用移位操作,但乘法不好处理,也不能用循环累加求和。
  • 可改进,用到循环的地方改成递归,用到if判断的地方改成逻辑运算:利用逻辑短路的特点。

代码(Java实现):

public class Solution {
	public int Sum_Solution(int n) {
        int sum=n;
        boolean flag=(n>0) && ((sum+=Sum_Solution(n-1))>0);
        return sum;
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
01-31 04:00
神哥不得了:首先我就是在成都,成都的互联网格外的卷,如果是凭现在的简历的话很难找到大厂,建议再添加一个高质量的项目上去,另外专业技能的话最好是超过每一条的一半
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务