面试题47:不用加减乘除做加法
来源:互联网 发布:淘宝怎么查退货率 编辑:程序博客网 时间:2024/04/28 11:29
学习了一段时间《剑指offer》现在做了一些笔试,现在陆续把笔记上传到博客,方便自己及他人上网查看。
题目:写一个函数,求两个整数之和,要求在函数体内不得使用+,-,×,÷四则运算符号。
思路:分三步;
第一步:相加不考虑进位情况,用异或来处理
第二步:考虑进位信息,用与操作,左移一位处理
第三步:将第一步和第二部的结果相加(其实就是重复第一步,第二步),直到进位为0。
代码如下:
int Add(int num1, int num2){int sum, carry;do{sum = num1^num2;carry = (num1&num2) << 1;num1 = sum;num2 = carry;} while (num2 != 0);return num1;}
相关问题:不使用新的变量,交换两个变量的值。
假设有两个变量a,b。有两种不同的方法实现:
第一种方法:基于加减法
A=A+B;
B=A-B; (交换)
A=A-B; (交换)
第二种方法:基于异或运算
A=A^B;
B=A^B; (交换)
A=A^B; (交换)
阅读全文
0 0
- 面试题47:不用加减乘除做加法
- 面试题47:不用加减乘除做加法
- 面试题47:不用加减乘除做加法
- 面试题47:不用加减乘除做加法
- 面试题47:不用加减乘除做加法
- 【面试题47】不用加减乘除做加法
- 面试题47-不用加减乘除做加法
- 面试题47:不用加减乘除做加法
- 面试题47:不用加减乘除做加法
- 面试题42:不用加减乘除做加法
- 面试题51:不用加减乘除做加法
- 面试题47. 不用加减乘除做加法
- [剑指offer][面试题47]不用加减乘除做加法
- 剑指Offer:面试题47 不用加减乘除做加法
- 剑指offer 面试题47—不用加减乘除做加法
- 【剑指Offer学习】【面试题47:不用加减乘除做加法】
- 剑指offer-面试题47:不用加减乘除做加法
- 剑指offer之面试题47不用加减乘除做加法
- windows命令
- MySQL数据库(五)_VS中实现插入MySQL数据实操
- MYSQL知识点(二)
- 记一次诊断Centos 7.X服务器Nginx PHP Mysql环境异常处理的方法和
- Linux 设备驱动篇之I2c设备驱动
- 面试题47:不用加减乘除做加法
- zepto.js使用注意点
- 厉害了!101岁老人挑战高空跳伞,被纳入吉尼斯世界纪录
- arduino 开发:手机蓝牙控制蜂鸣器
- group by having
- F
- 防火墙基础
- liunux常见的一些命令
- Java NIO读,写,拷贝文件