牛客网——不用加减乘除做加法
来源:互联网 发布:浙江软件考试网 编辑:程序博客网 时间:2024/06/07 19:23
题目:写一个函数,求两个整数之和,要求在函数体内不能使用 +、-、*、/ 四则运算符。
思路:不能用四则运算,那就只能利用位运算进行计算。
十进制计算:例如 27+85=112
分三步:(1)对各位只做相加不进位,结果为2;
(2)考虑进位,7+5中有进位,进位的值是10;2+8有进位,进位的值是100;
(3)将前面的三个结果相加,得到的结果为112。
二进制计算:例如 7+4=11 7的二进制为0111 4的二进制为0100
分三步:(1)只做相加不进位,相当于异或操作:0111 ^ 0100 = 0011;
(2)考虑进位,相当于与操作:0111 & 0100 = 0100,有进位,因此,将结果向前进位,得到1000;
(3)因为存在进位,所以将以上得到的两个结果,重复步骤(1)和步骤(2),直到与操作不产生进 位,此时步骤(1)得到的结果即为原始的两个数之和。
代码:
阅读全文
0 0
- 牛客网——不用加减乘除做加法
- 剑指offer—不用加减乘除做加法
- 剑指offer — 不用加减乘除做加法
- 牛客网 | 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- bitblaze中静态分析工具vine安装
- jQueryUI互动效果之resizable
- 需求的获取与敏捷项目管理
- Analyzing the Performance of an Anycast CDN(含论文谷歌翻译,人工修正)
- C++温故而知新----1
- 牛客网——不用加减乘除做加法
- C#随机生成四个两两相同的随机数
- Android请求服务器获取短信验证码实现注册功能
- SharedPreferences封装与全局使用
- 学习笔记11
- JavaDay05--Notes(方法,方法重载Overload,方法重写Override)
- [NOI2015]品酒大会
- 线性代数 01.04 克拉默法则
- 共享内存函数(shmget、shmat、shmdt、shmctl)及其范例