国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

[LintCode] A + B Problem(位運算)

xiaolinbang / 411人閱讀

摘要:位運算筆記加法異或運算求和與運算進位。減法將負數化為正,兩步完成取反做加法乘法的最后一位是,則結果每次循環后始終判斷最后一位,進位累加小學生算式做乘法除法不贅述,

Problem

Write a function that add two numbers A and B. You should not use + or any arithmetic operators.

Example

Given a=1 and b=2 return 3

Challenge

Of course you can just return a + b to get accepted. But Can you challenge not do it like that?

Note

**位運算筆記
Bit Manipulation Notes:**

加法:

^異或運算:求和;

&與運算:進位。

減法:

將負數化為正:~i, +1,兩步完成取反

做加法

乘法:

a * b: if (b & 1) ans += a //b的最后一位是1,則結果+a

每次循環后a << 1, b >> 1; //b始終判斷最后一位,a進位累加(小學生算式做乘法)

除法:(不贅述,O(log n))

http://blog.csdn.net/ojshilu/article/details/11179911
Solution
class Solution {
    public int aplusb(int a, int b) {
        // write your code here, try to do it without arithmetic operators.
        if (b == 0) return a;
        int sum = a^b;
        int carry = (a&b) << 1;
        return aplusb(sum, carry);
    }
}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/65469.html

相關文章

  • [LintCode/LeetCode] Single Number I &amp; II [運算]

    摘要:整個過程相當于,直接在和里去掉既是又是的。所以最后返回的,一定是只出現過一次的,而出現兩次的都在里,出現三次的都被消去了。 Single Number I Problem Given 2*n + 1 numbers, every numbers occurs twice except one, find it. Example Given [1,2,2,1,3,4,3], return...

    Drinkey 評論0 收藏0
  • [LintCode] Count 1 in Binary [典型運算題目]

    摘要:這道題,給我解決了兩個疑問,還剩一個。首先是要用無符號右移運算符,其次是可以用一個不斷左移的二進制作為參照。 Problem Count how many 1 in binary representation of a 32-bit integer. Example Given 32, return 1 Given 5, return 2 Given 1023, return 9 Ch...

    ZHAO_ 評論0 收藏0
  • [LintCode] Divide Two Integers

    摘要:首先,分析溢出條件,設置符號位,然后取絕對值運算。原理如下,被除數,除數,設等于。如,,,所以商里必定有一個的次方存入,然后。然后被除數減去,繼續。此時,,循環結束。再舉一個例子看得懂的版本綜合一下 Problem Divide two integers without using multiplication, division and mod operator. If it is ...

    NervosNetwork 評論0 收藏0
  • [LintCode] Binary Representation

    摘要:細節上還要考慮正負號和整數位的越界情況。然后在循環內判斷,如果有重復出現的,或者中小數部分的長度超過,就說明該小數無法完全轉換。如果之前的正負號為,就在左邊加上負號。 Problem Given a (decimal - e.g. 3.72) number that is passed in as a string, return the binary representation t...

    you_De 評論0 收藏0
  • [LintCode] Flip Bits

    摘要:的二進制補碼就是個,因此這道題一定要考慮正負號的問題。然后去檢查的二進制包含多少個,方法是對的每一位除以取余。如果為,就說明那一位為,即和在那一位不同,需要進行轉換。每次取余之后,減小為二分之一,刪除已經檢查過的高位。 Problem Determine the number of bits required to flip if you want to convert integer...

    joyvw 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<