當(dāng)前位置:
首頁 >
剑指 offer set 26 不用加减乘除做加法
發(fā)布時間:2025/7/25
44
豆豆
生活随笔
收集整理的這篇文章主要介紹了
剑指 offer set 26 不用加减乘除做加法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
總結(jié)
1. Leetcode 上有一道題, 是不用乘除做乘法, 那道題算是背包問題的變形
2. 不用加減乘除, 還可以用移位操作
3. 將數(shù)字轉(zhuǎn)成二進(jìn)制格式, 然后運用二進(jìn)制亦或, 移位運算解決
3.1 僅考慮各位相加, 不考慮進(jìn)位, num1 ^ num2
3.2 僅考慮進(jìn)位, (num1 & num2) << 1;
3.3 將上面兩步的和加起來
?
?code
#include <iostream> using namespace std;int Add(int num1, int num2) {int sum, carry;do {sum = num1 ^ num2;carry = (num1 & num2) << 1;num1 = sum;num2 = carry;} while(num2 != 0);return num1; }int main() {cout << Add(-11, 12) << endl;return 0; }
轉(zhuǎn)載于:https://www.cnblogs.com/xinsheng/p/3564221.html
總結(jié)
以上是生活随笔為你收集整理的剑指 offer set 26 不用加减乘除做加法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员的情书!
- 下一篇: 类似 Google Tips 页面的卡片