剑指offer--面试题47:不用加减乘除做加法
2016-09-28 15:54
381 查看
题目描述
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。python实现:
# -*- coding:utf-8 -*-
class Solution:
def Add(self, num1, num2):
# write code here
if num1 == -num2:
return 0
result = 0
num1 = num1&0xffffffff
num2 = num2&0xffffffff
MAXINT = 2**31-1
while num2:
c = num1^num2#c不同位
num2 = (num1&num2)<<1#相同位
num1 = c
num1 = num1&0xffffffff
num2 = num2&0xffffffff
return num1 if num1<=MAXINT else -((~num1+1)&0x7fffffff)
c++实现:
class Solution {
public:
//^表示加的值,&表示进位的值
int Add(int num1, int num2)
{
if(num1==-num2)
return 0;
while(num2){
int c = num1^num2;
num2 = (num1&num2)<<1;
num1 = c;
}
return num1;
}
};
相关文章推荐
- 剑指offer——面试题:47不用加减乘除做加法
- 【面试题】剑指Offer-47-不用加减乘除做加法
- 剑指Offer面试题47(Java版):不用加减乘除做加法
- 剑指offer 面试题47 不用加减乘除做加法
- 【剑指offer 面试题47】不用加减乘除做加法
- 【剑指Offer学习】【面试题47:不用加减乘除做加法】
- 剑指Offer:面试题47 不用加减乘除做加法
- 【剑指Offer学习】【面试题47:不用加减乘除做加法】
- 剑指offer——面试题47:不用加减乘除做加法
- 剑指Offer面试题47:不用加减乘除做加法 Java实现
- 剑指offer 面试题47—不用加减乘除做加法
- 【剑指Offer学习】【面试题47:不用加减乘除做加法】
- 【剑指offer】6.5发散思维能力——面试题47:不用加减乘除做加法
- 【剑指Offer】面试题47:不用加减乘除做加法
- [剑指offer][面试题47]不用加减乘除做加法
- 【剑指offer】面试题65:不用加减乘除做加法
- 剑指Offer 47 不用加减乘除做加法
- 剑指offer47 不用加减乘除做加法
- 剑指Offer解题报告(Java版)——不用加减乘除做加法 47
- 剑指Offer47 不用加减乘除做加法