码迷,mamicode.com
首页 > 其他好文 > 详细

《Cracking the Coding Interview》——第18章:难题——题目1

时间:2014-04-29 14:58:53      阅读:383      评论:0      收藏:0      [点我收藏+]

标签:com   http   class   blog   style   div   img   code   java   javascript   log   

2014-04-29 00:56

题目:不用算数运算,完成加法。

解法:那就位运算吧,用加法器的做法就可以了。

代码:

mamicode.com,码迷
 1 // 18.1 add two numbers wihout using arithmetic operator.
 2 #include <iostream>
 3 using namespace std;
 4 
 5 int add(int x, int y)
 6 {
 7     int sum;
 8     int carry;
 9     int bx, by;
10     int base;
11     
12     base = 1;
13     carry = 0;
14     sum = 0;
15     while (base != 0) {
16         bx = x & base;
17         by = y & base;
18         base <<= 1;
19         sum |= ((bx) ^ (by) ^ carry);
20         carry = ((bx & by) || (bx & carry) || (by & carry)) ? base : 0;
21     }
22     
23     return sum;
24 }
25 
26 int main()
27 {
28     int x, y;
29     
30     while (cin >> x >> y) {
31         cout << add(x, y) << endl;
32     }
33     
34     return 0;
35 }
mamicode.com,码迷

 

《Cracking the Coding Interview》——第18章:难题——题目1,码迷,mamicode.com

《Cracking the Coding Interview》——第18章:难题——题目1

标签:com   http   class   blog   style   div   img   code   java   javascript   log   

原文地址:http://www.cnblogs.com/zhuli19901106/p/3698344.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!