题解 | #《剑指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;
    }
}
全部评论

相关推荐

刘湘_passion:出国旅游?那就小心你的腰子咯
点赞 评论 收藏
分享
野猪不是猪🐗:现在的环境就是这样,供远大于求。 以前卡学历,现在最高学历不够卡了,还要卡第一学历。 还是不够筛,于是还要求得有实习、不能有gap等等... 可能这个岗位总共就一个hc,筛到最后还是有十几个人满足这些要求。他们都非常优秀,各方面都很棒。 那没办法了,看那个顺眼选哪个呗。 很残酷,也很现实
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务