不用中間變數交換兩個變數的值
解1:
加減法:該方法可以交換整型和浮點型數值的變數,但在處理浮點型的時候有可能出現精度的損失。
public void swap (int a, int b) {
a = a + b;
b = a - b;
a = a - b;
}
解2:
異或法:可以完成對整型變數的交換,對於浮點型變數它無法完成交換。
異或運演算法則有:x ^ 0=x;x ^ x=0;a ^ b=b ^ a;
public void swap (int a, int b) {
a = a ^ b;
b = a ^ b;
a = a ^ b;
}
相關推薦
不用中間變數交換兩個變數的值
解1: 加減法:該方法可以交換整型和浮點型數值的變數,但在處理浮點型的時候有可能出現精度的損失。 public void swap (int a, int b) { a = a + b; b = a - b; a = a - b; } 解2: 異
面試官在“逗”你係列:不借助第三變數交換兩個變數值的方案你有幾種?
引言 在我們學習程式設計之初,就學習過變數的賦值操作,同時也學習了將一個變數的值賦值給另外一個變數。對於交換兩個變數的值,很多童鞋都有解決方案。然鵝,對於面試官提出的不借助第三變數來交換兩個變數的值,你能想到幾種解決方案呢? 如果你只知道一種方案,請你認真看下去... 如果你知道兩種方案,那麼你可以來了解更
PHP不用第三變數互換兩個變數值的方法
在PHP中如何在不使用第三變數的情況下,達到交換兩個變數值得目的。 一、substr() && strlen() 程式碼: <?php /** * 雙方變數為字串時,可用交換方法一 * 使用substr()結合strlen()兩個方法達
關於交換兩個變數值的三種方法
1,臨時變數法: temp=A; A=B; B=temp; 2,求差法: A=A-B; B=A+B; //B=A-B+B=A A=B-A; //A=A-A+B 3,異或法: A=A^B; B=A^B; //B=A^B^B=A A=A^B; //A=A^B^A=B 第一種方法最
原地交換兩個變數值
原地交換兩個變數值 原地交換兩個變數值 原地交換兩個變數值 如何將a、b兩個變數的值進行交換 可以通過相加來實現: int a=3,b=4; a=a+b; b=a-b; a=a=b; 另外,可以用異或來實現:
不用中間變數交換兩個數
要求:不用第三變數將a和b兩個值交換。 方法:用 ^ 異或解決,同桌是這樣解決的,很聰明。 #include<stdio.h> int main() { int a=13,b=31; printf(“交換前:a=%d b=%d \n”,a,b); b=a^b;//得出
PHP互換兩個變數值的方法(不用第三變數)
一、substr() && strlen()<?php /** * 雙方變數為字串時,可用交換方法一 * 使用substr()結合strlen()兩個方法達到交換變數值得目的 */ $a = "This is A"; // a變數原始值 $b =
JavaScript不借助第三個變數交換a,b兩個變數值
交換變數值方案一 最最最簡單的辦法就是使用一個臨時變量了 不過使用臨時變數的方法實在是太low了 var t; t = a; a = b; b = t; 首先把a的值儲存到臨時變數中 然後b賦值給a 最後拿出臨時變數中的a值賦給b 這個辦法是最
JavaSE7基礎 交換兩個變量的數值 巧妙的代碼
學習 程序 技術分享 註意 我會 思考 ase com 編輯器 jdk版本 :jdk-7u72-windows-i586系統 :Windows7編輯器 :Notepad++ v7.4.2註意事項 :博文內容僅供參考,不可用於其他用途。 代碼 clas
不用使用中間變數讓兩個int變數的值互換
不用使用中間變數讓兩個int變數的值互換 這個問題在面試的時候出現概率很高,相信還有很多人不會 在回答這個問題前,讓我們先看看異或這個運算子 什麼是異或 變數的值不同時結果為1,值相同時結果為0 在java中異或的符號是 ^,具體運算結果看下錶:
不適用 其他的變數交換兩個數值
#include<stdio.h> #include <stdlib.h> void swap1(int& a,int& b) //使用中間變數交換兩個值 { int temp = a; a = b;
【C語言】兩個變數值的交換——指標
C語言中交換兩個變數的值可以在主函式中直接實現,也可以通過子函式來實現。下面我們介紹用子函式實現的情況。 1.將兩個變數的值作為實參直接傳遞,在子函式內部定義一個普通變數來對兩個形參進行交換,並分別在子函式和主函式中列印。#include <stdio.
不用第三個變數交換兩個變數的值
<?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 呼叫函式進行兩個變數值的交換
交換兩個變數的值,如果是基礎型別比如int, 直接進行交換: int aToSwap = 1; int bToSwap = 2; 一個經典的問題就是如果我有一個swap 方法如下,試問在主函式裡呼叫了這個swap 方法以後 ,從主函式裡傳入的兩個變數值交換了沒有? publ
【編程題】不引入第三個變量,而交換兩個變量的值
其中 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中交換兩個變量值的方法
兩個 交換 print pri python post 方法 變量 class a = 4b = 5 #第1種c = 0c = aa = bb = c #第2種a = a+bb = a-ba = a-b #第3種a,b = b,a print("a=%d,b=%d"%(a,
交換兩個變量的值,不借助第三個變量的 三種方法(JS實現)
clas img 進行 blog 算法 並且 pos 成交 方法 第一種:算術運算法 var a = 10; var b = 12; a = b - a; b = b - a; a = b + a; 它的原理是:把a、b看做數軸上的點,圍繞兩點間的距離來進行計算。
不使用第三個變量交換兩個變量的值
pan AS color clas pre class spa 交換 div 1 i = i + j; 2 j = i - j; 3 i = i - j; 1 i = i * j; 2 j = i / j; 3 i = i / j; 1 i = i ^ j; 2
C語言:指針實現交換兩個變量的值
實現 urn sign ret 語言 div title void itl 用指針交換兩個變量的值(10分) 題目內容: 用指針交換兩個變量的值 主函數參考: int main( ) { int a,b; scanf("%d%d",&a,&b)