题解 | #求1+2+3+...+n#

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

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

import java.util.*;
应该说看到这种只能加减,不能乘除,也不能循环,不能使用判断等等这些条件就知道了
肯定要用位运算。
左移一位相当于乘以2,右移一位相当于除以2,这是基本的常识。记不起来可以举一个0010的例子移动一下1
然后把(首项+末项)*项数/2进一步化简,即为(n+n²)/2.平方就用Math.pow就可以了
右移是>>,左移是<<。注意是两个符号连在一起

public class Solution {
    public int Sum_Solution(int n) {
        int sum = 0;//初始化结果
        sum = (int)(n + Math.pow(n,2)) >> 1;//通过右移一位来代替除以2,注意要强转一下
        return sum;
    }
}
全部评论

相关推荐

门口唉提是地铁杀:之前b站被一个游戏demo深深的吸引了。看up主页发现是个初创公司,而且还在招人,也是一天60。二面的时候要我做一个登录验证和传输文件两个微服务,做完要我推到github仓库,还要我加上jaeger和一堆运维工具做性能测试并且面试的时候投屏演示。我傻乎乎的做完以后人家跟我说一句现在暂时不招人,1分钱没拿到全是白干
你的秋招第一场笔试是哪家
点赞 评论 收藏
分享
06-26 10:08
门头沟学院 C++
北京Golang实习,一个月4700,吃住都不报,公司位置在海淀。请问友友怎么看呢?如果要租房的话有什么建议吗
码农索隆:租房肯定是合租了,剩下的钱,差不多够正常吃饭了,看看能不能学到东西吧
点赞 评论 收藏
分享
评论
7
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务