剣指offer面接問題65 python版+解析:加減乗除を加算しない
463 ワード
タイトルの説明
1つの関数を書いて、2つの整数の和を求めて、関数の体内で+、-、*、/の4つの演算記号を使用してはいけないことを要求します.
考え方:バイナリに変換
1.各ビットに対するキャリーの加算は考慮されず、排他的または排他的な結果と同じである.
2.キャリーを考慮し、2つの数を先に演算し、次に1つ左に移動します.
3.前の2つの結果を加算します.
1つの関数を書いて、2つの整数の和を求めて、関数の体内で+、-、*、/の4つの演算記号を使用してはいけないことを要求します.
考え方:バイナリに変換
1.各ビットに対するキャリーの加算は考慮されず、排他的または排他的な結果と同じである.
2.キャリーを考慮し、2つの数を先に演算し、次に1つ左に移動します.
3.前の2つの結果を加算します.
# -*- coding:utf-8 -*-
class Solution:
def Add(self, num1, num2):
# write code here
nsum = 0
carrry = 0
nsum = num1 ^ num2
carry = (num1 & num2)<<1
return nsum+carry