題目描述
- 寫一個函數(shù),求連個整數(shù)之和俱萍,要求在函數(shù)體內(nèi)不得使用
'+'琼掠、'-'海铆、'*'、'/'
四則運算符號
題目解讀
- 劍指Offer 310
代碼
class Solution {
public:
int Add(int num1, int num2){
int sum, jinwei;
do{
sum = num1 ^ num2;
jinwei = (num1 & num2) << 1;
num1 = sum;
num2 = jinwei;
}while(num2 != 0);
return num1;
}
};
擴展題目
不使用新的變量奥额,交換兩個變量的數(shù)值。比如我們有兩個變量 a, b,我們希望交換它們的值保檐。有兩種不同的方法
- 方法一、基于加減法
a = a + b; // a 暫存兩數(shù)之和
b = a - b; // b為兩數(shù)之和減去b崔梗,b變?yōu)樵瓉淼腶
a = a - b; // a為兩數(shù)之和減去現(xiàn)在的b(原來的a)夜只,變成原來的b
- 方法二、基于異或運算
a = a ^ b;
b = a ^ b;
a = a ^ b;