Lintcode1A+BProblemsolution题解-创新互联

【题目描述】

创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站设计、成都网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的东阿网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

Write a function that add two numbers A and B. You should not use + or any arithmetic operators.

Notice:There is no need to read data from standard input stream. Both parameters are given in function aplusb, you job is to calculate the sum and return it.

给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符。

注意:你不需要从输入流读入数据,只需要根据aplusb的两个参数a和b,计算他们的和并返回就行。

【题目链接】

http://www.lintcode.com/en/problem/a-b-problem/

【题目解析】

直接+没什么好说的,关键在于不用+的操作:考验Bit Operation, 可以用按位^异或两个操作数对应位以及carry,只是carry是1还是0需要分情况讨论。求更优的解法。

位运算实现整数加法本质就是用二进制进行运算。其主要用了两个基本表达式:x^y //执行加法,不考虑进位。(x&y)<<1 //进位操作

令x=x^y ;y=(x&y)<<1 进行迭代,每迭代一次进位操作右面就多一位0,最多需要“加数二进制位长度”次迭代就没有进位了,此时x^y的值就是结果。

【参考答案】

http://www.jiuzhang.com/solutions/a-b-problem/


新闻名称:Lintcode1A+BProblemsolution题解-创新互联
文章路径:http://bzwzjz.com/article/ddpgij.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 网站建设公司 重庆企业网站建设 高端网站设计 响应式网站设计 成都网站建设 网站制作公司 H5网站制作 成都网站建设 公司网站建设 成都网站制作公司 成都营销网站制作 成都网站设计 移动网站建设 网站建设方案 成都网站建设 成都定制网站建设 成都企业网站设计 网站建设 成都网站建设 网站制作 网站设计制作报价 重庆外贸网站建设