基础编程题之不用加减乘除做加法
生活随笔
收集整理的這篇文章主要介紹了
基础编程题之不用加减乘除做加法
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- 題目
- 解題思路
- 代碼
題目
???br />
解題思路
這種題其實(shí)有非常多的解法,這里我們一定要掌握一種效率最高的算法,那就是利用位運(yùn)算,其本質(zhì)也就是二進(jìn)制的加法
在十進(jìn)制中,我們做加法一般遵循以下三步:以5+7為例
而在二進(jìn)制中,其實(shí)也是遵循三個(gè)步驟:以5+7為例,其二進(jìn)制分別為101和111
代碼
class Solution { public:int Add(int num1, int num2) {while(num2)//num2作為進(jìn)位值{int sum=num1 ^ num2;//不算進(jìn)位后的相加結(jié)果int carry=(num1 & num2) << 1;//進(jìn)位num1=sum;num2=carry;}return num1;} };總結(jié)
以上是生活随笔為你收集整理的基础编程题之不用加减乘除做加法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: (计算机组成原理)第六章总线-第四节:总
- 下一篇: SharePoint 2013 Erro