劍指Offer對答如流系列 - 不用加減乘除做加法

面試題65:不用加減乘除做加法

一、題目描述

寫一個函數,求兩個整數之和,要求在函數體內不得使用+、-、×、÷四則運算符號。

二、問題分析

我們之前詳細探討了位運算 劍指Offer對答如流系列 - 二進制中 1 的個數,已經非常非常詳細了。

這道題僅僅是讓做加法,我們除此之外還是做了乘除與減法。

記不清的朋友可以回頭看看。

這裏象徵性地做一次解答吧

三、問題解答

 public int add(int num1,int num2) {
        while(num2!=0){
            int sum=num1^num2; 
            int carry=(num1&num2)<<1;  
            num1=sum;
            num2=carry;
        }
        return num1;
    }
發佈了194 篇原創文章 · 獲贊 3472 · 訪問量 53萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章