不用加减乘除做加法
来源:互联网 发布:你瞒我瞒网络链接 编辑:程序博客网 时间:2024/06/05 15:57
题目描述
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
找到了一个非常棒的解析,关于这个问题的
a+b = (a^b) + (a&b)*2 ,然后将 a^b 作为新的a, (a&b)*2作为新的b,直到b=0
用一个例子来证明这个公式:
假设:
a = 00011011
b = 00111110
那么
a^b= 00100101
a&b= 00011010
用a+b-a^b 那么 a和b变成 (如果a^b中第三位为1,那么说明a和b中只有一个第三位为1,将a或b的那个第三位1去掉)
a = 00011010
b = 00011010
正好a和b都等于a&b
这就证明出了 a+b-(a^b) = (a&b)*2
# -*- coding:utf-8 -*-class Solution: def Add(self, num1, num2): # write code here return (num1 ^ num2) + (num1 & num2) * 2;
0 0
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- 不用加减乘除做加法
- Leetcode 39 - Combination Sum I, II, III(dfs)
- ffmpeg 将图片合成视频以及将内存数据合成视频
- (4)MyEclipse10安装aptana插件
- hover中的小坑
- 阿里巴巴技术笔试心得《技术之瞳》例题错误答案汇总(持续更新)
- 不用加减乘除做加法
- 水仙花数 (sdut oj)
- Cocoa 禁止APP多重启动
- FJOI2017 滚蛋记
- Android中的Service与进程间通信(IPC)详解
- python3 文档测试
- PHP的一些天坑
- addShutdownHook
- ThreadPoolExecutor机制(一)--基本介绍