劍指Offer——不用加減乘除求兩個整數之和 + 不使用新的變數交換變數a,b
#include "stdafx.h" #include<iostream> using namespace std; int Add(int num1, int num2) { int sum; int carry; do { sum = num1^num2; carry = (num1 & num2) << 1; num1 = sum; num2 = carry; } while (num2 != 0); return num1; } int main() { int num1; int num2; while (1) { cin >> num1 >> num2; cout << "num1+num2 =" << Add(num1, num2); } return 0; }
相關推薦
劍指Offer——不用加減乘除求兩個整數之和 + 不使用新的變數交換變數a,b
1.求和主要思路 利用異或 和移位操作實現 2.交換主要思路 ①:基於加減法 a = a+b; b = a-b; a = a-b; ② :基於異或運算 a = a^b; b = a^
劍指offer---不用加減乘除做加法
logs class int col clas off urn turn spa class Solution { public: int Add(int num1, int num2) { while (num2--) {
劍指Offer - 不用加減乘除做加法
sub 題目 return 加減乘除 describe body col style blog 題目描述 寫一個函數,求兩個整數之和,要求在函數體內不得使用+、-、*、/四則運算符號. 代碼: class Solution { public: int
劍指offer——不用加減乘除做加法
不用 odin www coder rank page -i offer quest 不用加減乘除做加法 不會劍指offer——不用加減乘除做加法
劍指offer——不用加減乘除做加法(按位與和異或)
class Solution { public: int Add(int num1, int num2) { while(num2 != 0){//若需要進位 int sum = num1 ^ num2;//異或,01=1,00=0,11=
劍指offer----不用加減乘除做加法
題目描述 寫一個函式,求兩個整數之和,要求在函式體內不得使用+、-、*、/四則運算子號。 //拿101和111舉例說明 //n1為1010,即只標記了進位之後為1的位置,即101和111的最高為都為1, //即從右向左第三位都為1,則進位到第四位,則進位標記的第
劍指offer:不用加減乘除做加法(java)
題目:寫一個函式,求兩個整數之和,要求在函式體內不得適用+,-,* ,./ 四則運算子號 面試的時候被問道這個問題,首先我們分析人們是如何進行十進位制的加法的,比如如何得出5+17=22這個結果的,實際上,我們可以分三步進行:第一步只做各位相加不進位,此時相加
劍指offer____不用加減乘除做加法
寫一個函式,求兩個整數之和,要求在函式體內不得使用+、-、*、/四則運算子號。 方法一:位運算 class Solution { public: int Add(int num1, int num2) { /* if(num2 == 0) r
劍指offer48---不用加減乘除做加法
題目描述 寫一個函式,求兩個整數之和,要求在函式體內不得使用+、-、*、/四則運算子號。 這個題考位運算,位運算其實是非常常見的。 趕緊複習一下位運算的東西吧https://blog.csdn.net/zj15527620802/article/details/80367
劍指offer——面試題15.2:判斷兩個整數m和n的二進制中相差多少位
end aps alt 試題 namespace different hide 判斷 img 1 #include"iostream" 2 using namespace std; 3 4 int CountDifferentBit(int m,int n)
《劍指Offer》題目:合並兩個排序的鏈表
合成 sorted 合並 邊界情況 logs pub st2 next null 題目描述:輸入兩個單調遞增的鏈表list1,list2,輸出兩個鏈表合成後的鏈表,當然我們需要合成後的鏈表滿足單調不減規則。 題目分析: 1.對於鏈表題目,首先考慮邊界情況,即鏈表為空的情況,
劍指offer十六之合並兩個排序的鏈表
gif 虛線 tno 合並鏈表 -- class sed net isp 一、題目 輸入兩個單調遞增的鏈表,輸出兩個鏈表合成後的鏈表,當然我們需要合成後的鏈表滿足單調不減規則。 二、思路 註:鏈表1和鏈表2是兩個遞增排序的鏈表,合並這兩個鏈表得到升序鏈表為鏈表3.
劍指Offer值和為S的兩個數字
題目描述 輸入一個遞增排序的陣列和一個數字S,在陣列中查詢兩個數,使得他們的和正好是S,如果有多對數字的和等於S,輸出兩個數的乘積最小的。 思路 l表示左側位置,r表示右側位置。不斷向中間靠攏,如果array[l]+array[r] == sum,則找到正確結果,如果l>
劍指offer 42. 和為s的兩個數字
原題 輸入一個遞增排序的陣列和一個數字S,在陣列中查詢兩個數,使得他們的和正好是S,如果有多對數字的和等於S,輸出兩個數的乘積最小的。 輸出描述: 對應每個測試案例,輸出兩個數,小的先輸出。 Reference Answer 思路分析 設定兩個指標,一個指向陣列的起點
【劍指offer】面試題9:用兩個棧實現佇列【C++版本】
題目: 用兩個棧實現佇列 用兩個棧實現一個佇列。佇列的宣告如下,請實現它的兩個成員函式,分別完成在佇列尾部插入節點和在佇列的頭部刪除節點 class solution { public: void push(int node);
(劍指offer)和為S的兩個數字
時間限制:1秒 空間限制:32768K 熱度指數:153416 題目描述 輸入一個遞增排序的陣列和一個數字S,在陣列中查詢兩個數,使得他們的和正好是S,如果有多對數字的和等於S,輸出兩個數的乘積最小的。 輸出描述: 對應每個測試案例,輸出兩個數,小的先輸出。 import jav
劍指Offer-57 和為S的兩個數字
題目: 輸入一個遞增排序的陣列和一個數字S,在陣列中查詢兩個數,使得他們的和正好是S,如果有多對數字的和等於S,輸出兩個數的乘積最小的。 輸出描述: 對應每個測試案例,輸出兩個數,小的先輸出。 解答: # -*- coding:utf-8 -*- class Solution(o
劍指offer:和位s的兩個數字(java)
/** * 題目: * 輸入一個遞增排序的陣列和一個數字S,在陣列中查詢兩個數,使得他們的和正好是S, * 如果有多對數字的和等於S,輸出兩個數的乘積最小的 * 解題思路: * 具體見程式碼 */ import java.util
牛客網線上程式設計專題《劍指offer-面試題17》合併兩個排序的連結串列
題目連結: 題目描述: 解題思路: (1)方法一: 修改兩個待合併連結串列的引用域,使它們稱為一個有序的連結串列list3。具體思路如下圖所示: 已經AC的程式碼: public class MergeLinkedList { // 定義結點
【劍指offer第五題】用兩個棧實現佇列
棧的實現是先進後出,佇列是先進先出。思路就是第一個棧的元素按次序出棧,然後第二個棧依次入棧,然後出棧。 import java.util.Stack; public class Solution