不用第三個變數,直接交換兩個變數的值
#include <iostream> using namespace std; void swap_a(int &a , int &b) { a = a + b; b = a - b; a = a - b; } void swap_b(int &a, int &b) { a = a ^ b; b = a ^ b; a = a ^ b; } /* * 在例如嵌入式開發這種空間有限的情況下,還是有用的 * 亦或操作肯定比加法運算更簡單,效率更高 */ int main() { int a = 1; int b = 2; swap_a(a, b); cout<<a<<"--"<<b<<endl; swap_b(a, b); cout<<a<<"--"<<b<<endl; }
相關推薦
不用第三個變數,直接交換兩個變數的值
#include <iostream> using namespace std; void swap_a(int &a , int &b) { a = a + b; b = a - b; a = a - b; } vo
【編程題】不引入第三個變量,而交換兩個變量的值
其中 blog b+ 沒有 來源 article else 位移 text 不引入第三個變量,而交換兩個變量的值 方法一:算術運算 1 int a,b; 2 a=10;b=12; 3 a=b-a; //a=2;b=12 4 b=b-a; //a=2;b=10
Python 為什麼只需一條語句“a,b=b,a”,就能直接交換兩個變數?
從接觸 Python 時起,我就覺得 Python 的元組解包(unpacking)挺有意思,非常簡潔好用。 最顯而易見的例子就是多重賦值,即在一條語句中同時給多個變數賦值: ```python >>> x, y = 1, 2 >>> print(x, y) # 結果
快速找出一個數組中的兩個數字,讓這兩個數字之和等於一個給定的值
http 知識 繼續 進一步 repl 有一個 tails 窮舉 too 我覺得寫得很清晰,希望沒有侵犯作者的著作權,原文地址http://blog.csdn.net/hackbuteer1/article/details/6699642 快速找出一個數組中的兩個數字,讓這
[日常練習] 4. 基於交換兩整形變數值的三種方法的C語言實現。
當面試題遇到:交換兩整形變數的值。你是感到無比的“慶幸”遇到這麼簡單的面試題,還是有一點“慌張”,怕是自己想的太簡單了吧!今天我們就來處理幾道小題,並且深入探討一下交換兩整形的3種C語言實現方法!當你再遇到這種問題的時候,你將一點都不慌!你,穩得一批! 練習題目: 1. 給定兩個整形
php 找出一個數組中的兩個數字,讓這兩個數字之和等於一個給定的值
有關於php的有好幾種思路,很多部落格都有我就不一一介紹了,只是貼程式碼僅供參考。 問題:給一個一維陣列,不確定具體有多少元素,例如$arr = [1,2,3,4,3,2,1],讓他們任意兩數字相加的和等於一個給定的值,比如說 5 ,可能有好幾個兩個數相加都是5,但只是取最
(c++)寫兩個函式,分別求兩個整數的最大公約數和最小公倍數,用主函式呼叫這兩個函式,並輸出結果兩個整數由鍵盤輸入。
#include<iostream> using namespace std; int max(int a,int b) {if(a<b){int c=a;a=b;b=c;}int
程式設計師面試題:快速找出一個數組中的兩個數字,讓這兩個數字之和等於一個給定的值
能否快速找出一個數組中的兩個數字,讓這兩個數字之和等於一個給定的值,為了簡化起見,我們假設這個陣列中肯定存在至少一組符合要求的解。 假如有如下的兩個陣列,如圖所示: 5,6,1,4,7,9,8 給定Sum= 10 1,5,6,7,8,9 給定Sum=
C語言:寫兩個函式,分別求兩個最大公約數和最小公倍數
題目:寫兩個函式,分別求兩個整數的最大公約數和最小公倍數,用主函式呼叫這個兩個函式,並輸出結果。兩個整數由鍵盤輸入 分析:求最大公約數,需要用到輾轉相除法: 輾轉相除法:設兩數為a、b(a>b
php不用第三個變量,交換兩個數的值
php 變量 //字符串版本 結合使用substr,strlen兩個方法實現$a="a";$b="b";echo ‘交換前 $a:‘.$a.‘,$b:‘.$b.‘<br />‘;$a.=$b;$b=substr($a,0,(strlen($a)-strlen($b)));$a=substr
交換兩個變數的值,不使用第三個變數的方法
Q1: 我們都知道交換兩個數的數值可以用三行程式碼解決,這是在C語言中就學過的: int c; c = a; a = b; b = c; 數學老師可能會給我們這個建議: a = a + b; b = a - b; //b=a+b-b=a a =
兩個變數資料交換的經典用法,只使用兩個變數,不借助第三個變數
1. 在 js 中,使用異或 ^ 的方式進行資料交換: var a = 32; var b = 48; a = a ^
PHP交換兩個變數的值,不使用第三個變數
當交換的為數字時: <?php /** * 雙方變數為數字時,可用交換方法五 * 使用加減運算子,相當於數學運算了^_^ */ $a = 1; // a變數原始值 $b = 2; //
交換兩個變數的值,不借助第三個變數的四種方法(學習)
缺點:是隻能用於數字型別,字串之類的就不可以了。a+b有可能溢位(超出int的範圍),溢位是相對的, +了溢位了,-回來不就好了,所以溢位不溢位沒關係,就是不安全。2) 指標地址操作 因為對地址的操作實際上進行的是整數運算,比如:兩個地址相減得到一個整數,表示兩個變數在記憶體中的儲存位置隔了
不用第三個變數交換兩個變數的值
<?php // 不用php庫函式,將字串反轉 $i = 0; $str = 'hello world my name is SHUIPING_YANG '; while ($str[$i] !=
不用引入第三變數交換兩個變數的值
前幾天發現了一個問題:有人告訴我,要進行變數交換,就必須引入第三變數! 假設我們要交換a和b變數的值,如果寫成 int a=5,b=10; a=b; b=a; 那麼結果就是兩個都是10,理由不言而喻。 所以就應該引入第三變數,在a的值被覆蓋之前就把a的值保留好。
JAVA不使用第三個變數,交換兩個變數的值
我們先看看使用第三個變數的方法。 public class Swap{ public static void main(String[] args){ int a = 3;
關於交換兩個變數的不用第三個變數 異或的問題
void my_swa22p(int &a, int &b) { a = a^b; b = a^b; a = a^b;} 這個是經典的 不用第三個變數進行交換的方式; 但是這個有個 問題··· int a = 3; my_swa2
兩個變量,不用第三個數就進行切換數值
進行 變量 方法 class span 個數 style blog body var a = 5; var b = 6; //第一種方法: a = a+b; b = a - b; a = a - b; //第二種方法: a = [a,b]; b
交換兩個變量的值,不借助第三個變量的 三種方法(JS實現)
clas img 進行 blog 算法 並且 pos 成交 方法 第一種:算術運算法 var a = 10; var b = 12; a = b - a; b = b - a; a = b + a; 它的原理是:把a、b看做數軸上的點,圍繞兩點間的距離來進行計算。