1. 程式人生 > >不用+、-、×、÷對兩個數求和

不用+、-、×、÷對兩個數求和

題目:不用+、-、×、÷對兩個整數求和。

思路:
主要分成3步:
第一步不考慮進位,對每一位相加。0加0與1加1的結果都0,0加1與1加0的結果都是1。我們可以注意到,這和異或的結果是一樣的。對異或而言,0和0、1和1異或的結果是0,而0和1、1和0的異或結果是1。
接著考慮第二步進位,對0加0、0加1、1加0而言,都不會產生進位,只有1加1時,會向前產生一個進位。此時我們可以想象成是兩個數先做位與運算,然後再向左移動一位。只有兩個數都是1的時候,位與得到的結果是1,其餘都是0。
第三步把前兩個步驟的結果相加。相當於輸入前兩步驟的結果來遞迴呼叫自己。

int addWithoutArithmetic(int
num1,int num2){ if(num2 == 0) return num1; int XORresult = num1 ^ num2; int carry = (num1 & num2)<<1; return addWithoutArithmetic(XORresult,carry); }

相關推薦

不用×÷個數求和

題目:不用+、-、×、÷對兩個整數求和。 思路: 主要分成3步: 第一步不考慮進位,對每一位相加。0加0與1加1的結果都0,0加1與1加0的結果都是1。我們可以注意到,這和異或的結果是一樣的。對異或而言,0和0、1和1異或的結果是0,而0和1、1和0的異或

不用temp,個數的值進行互換

如: let a = 1,b=2; a的二進位制: 0001 b的二進位制: 0010 利用異或運算的規律:兩個運算元的位中,相同返回0,不同相返回1 a = a^b;//now a = 0011 b = b^a;//a: 0011, b:0010, now b:0

Tp5.0 一個form表單個數表(無關聯)的內容進行更新

呃呃呃呃呃,這個筆記做的有點想罵人,因為本來是一個很簡單的操作,卻因為我手冊沒有讀熟,基礎不夠紮實,導致了困擾我好久。話不多說 先上圖: 一個form 表單裡面的資料是從兩個資料表裡用ajax面拿出來的(至於咋拿的,上一次筆記有寫),這時對錶單資料進行改動,然後重新存入資料庫。。。。 提

Shell 腳本《個數求和

不用 input lease In let inpu AD 腳本 功能 #!/bin/bash #read -r使\取消轉義功能 -p提示內容 read -r -p "Please input A: " A read -r -p "Then please input B

第一個彙編程式:個數求和

Win32下第一個彙編小程式:求兩個數的和! 感覺彙編程式碼比較凌亂,看起來不爽,沒有C、Java那樣有邏輯,至少目前是這樣感覺的! ; 彙編程式:求兩個數的和 ; 作者: Mr.Lee ; 日期: 2011年5月16日 .386 .MODEL FLAT ExitPr

程式設計師面試題精選100題(55)-不用×÷數字運算子做加法

方法一: 5的二進位制是101,17的二進位制10001。還是試著把計算分成三步:第一步各位相加但不計進位,得到的結果是10100(最後一位兩個數都是1,相加的結果是二進位制的10。這一步不計進位,因此結果仍然是0);第二步記下進位。在這個例子中只在最後一位相加時產生一個進

python全棧脫產第34天------開啟進程的種方式join方法進程象其他相關的屬性和方法僵屍進程孤兒進程守護進程互斥鎖

for roc -- don 操作 windows main 周期 僵屍 一、開啟進程的兩種方式   方式一: from multiprocessing import Processimport timedef task(name): print(‘%s is run

python-進階教程-個集合/字典求交集差集並集

1.集合 a = set([1,2,3,4,5,100,1000]) b = set([1,2,3,4,5,128.1024]) #交集 print(a & b) #{1, 2, 3, 4, 5} #差集 print(a - b) #{1000, 100} #並集

辯證法中包括一個關係大特徵三大規律四種方法範疇

辯證關係: 一、辨證關係原理 (一)物質和意識的辨證關係原理 (1)辨證唯物論認為,物質決定意識,意識是物質的反映。這一原理要求我們想問題辦事情必須做到一切從實際出發,使主觀符合客觀。 (2)意識對物質具有反作用,正確的意識能促進客觀事物的發展,錯誤的意識則阻礙客觀事物的發

javaList去重並排序如何快速地去掉個List中相同的部分

1:去重並排序 package twolist; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.Has

java-mybaits-00502-案例-映射分析-一對一一對多

per username nfa view 2.3 puts opened org double 1、一對一查詢【類屬性即可,association 】 案例:查詢所有訂單信息,關聯查詢下單用戶信息。 註意:因為一個訂單信息只會是一個人下的訂單,所以從查詢

面向原型鏈繼承知識梳理

中介 獲取 混合 console 原型 code name 諸多 祖先 單例模式:就是一個對象咯 var person={ name:‘xuwen‘, age:17 }; var person2={ name:‘xiaoxu‘, age:2

VR 全景全景智慧城市創業者,企業轉型有哪些幫助

校準 作圖 解決 獨立 完全 全景 免費雲 -a 成對  全景漫遊圖像是給人以三維立體感覺的實景720度合成圖像,此圖像最大的三個特點是: 1、全:全方位,全面的展示了雙360度球型範圍內的所有景致;可在通過鼠標拖動,觀看場景的各個方向; 2、景:實景,真實的場景,三維全景

Python 函數生成器 裝飾器叠代器閉包函數

exists 空間 體重 main show pow eth 內存 cit 一、函數對象 正確理解 Python函數,能夠幫助我們更好地理解 Python 裝飾器、匿名函數(lambda)、函數式編程等高階技術。 函數(Function)作為程序語言中不可或缺的一部分,太稀

leetcode鏈表--14add-two-numbers(鏈表相加 得到新鏈表)

logs 錯誤 align 描述 eight val str nodes sent 題目描述 You are given two linked lists representing two non-negative numbers. The digits are sto

【JAVAEE學習筆記】hibernate02:實體規則象狀態緩存事務批量查詢和實現客戶列表顯示

使用 ins tro trace ges create 綁定 criteria 命名 一、hibernate中的實體規則 實體類創建的註意事項  1.持久化類提供無參數構造  2.成員變量私有,提供共有get/set方法訪問.需提供屬性  3.持久化類中的屬性,應盡量使用包

Python基礎(正則序列化常用模塊和面向象)-day06

.net 支持 tro sub 商城 pytho font spa 要求 寫在前面 上課第六天,打卡:     天地不仁,以萬物為芻狗; 一、正則   -   - 在線正則工具:http://tool.oschina.net/regex/   -

mybatis3.2.7應用_高級映射(一對一一對多多)

mybatis3 單個 所有 由於 單表 myba 用戶 記錄 text 1. 一對一查詢 需求:查詢訂單信息,關聯查詢創建訂單的用戶信息 1.1 使用resultType實現 1.1.1 sql語句    確定查詢的主表:訂單表   確定查詢的關聯表:用戶表

5月15日上課筆記-js中 location象的屬性documentjs內置Date事件

nts 根據 host value string 定時函數 date this 個數 location的屬性: host: 返回當前主機名和端口號 定時函數: setTimeout( ) setInterval() 二、document對

OOM之類實例實體之辨析

有一個 white tro 解釋 you 習慣 解決 有意 會有 一、場景再現 有一個重要的概念你需要弄明白,那就是“類(class)”和“對象(object)”的區別。我用禪語來解釋一下吧: 魚和三文魚有什麽區別? 這個問題有沒有