交換兩個整數的三種方法
交換a和b
—————————————————————————
第一種
temp = a;
a = b;
b = temp;
缺點:
- 建立臨時變數,浪費資源。
相對來說以下兩種方法就比較節省資源了。
第二種 (運用兩整數加減交換的演算法)
a = a-b;
b = b+a; // b = a(原來的a);
a = b-a;
或者
a = a+b;
b = a-b;
a = a-b;
第三種(按位異或運算子)
x = x^y;
y = y^x;
x = x^y;
————————————————————————-
參考文章
相關推薦
交換兩個整數的三種方法
交換a和b ————————————————————————— 第一種 temp = a; a = b; b = temp; 缺點: 建立臨時變數,浪費資源。 相對來說以
交換兩個整數數值的三種方法
如何交換兩個整數數值? 1.藉助第三個變數實現 (最常用的做法) int a = 100; int b = 200; int c; c = a; a = b;
詳解java交換兩個整數變量的三種方法
臨時 java 操作 spa 自身 整型 nbsp 過程 code 在進行開發時,往往需要對兩個整數變量進行交換,可采用以下三種方法: 1、借助臨時變量; public static void swap1(int a,int b ){ System.
3種方法交換兩個整數(不建立臨時變數)+輸出一組資料最大值+簡單排序+最大公約數
交換兩個整數: 第一種: int a = 6; int b = 8; int t = 0; t = a; a = b; b = t; printf("a = %d b = %d\n", a, b); 後兩種不建立臨時變數 第二種: int a = 6; int
不借助第三個變數交換兩個整數
假設兩個數x和y,則有: 方法1,算術運算(加減): x=x+y; //x暫存兩數之和 y=x-y; //y為兩數之和減去y,即原來的x x=x-y; //x為兩數之和減去現在的y(原來的x),變成原來的y 方法2,邏輯運算(異或):
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,
交換兩個數的幾種方法
code alt pre temp emp 分享圖片 splay lin ons 第一種:利用第三方變量 1 int a = 10, b = 12; 2 int temp = 0; 3 temp = a; 4 a = b; 5 b = temp; 6 Console.W
c語言 用指標交換兩個整數附記憶體圖
// Pointer.cpp : 定義控制檯應用程式的入口點。 // !!!!!!VS2015中編輯的 #include “stdafx.h” void swap1(int *x, int *y); void swap2(int *x, int *y); int main() { int
交換兩個整數
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> int main() { int a, b, c; printf("輸入2個數:\n"); scanf("%d%d", &
兩欄佈局三種方法(親測有效)
第一種: 只需要兩個div就能實現,主要原理是將第一個div設為浮動,並加上寬度,然後就可以實現兩欄佈局,並不需要設定第二個div的任何東西。程式碼如下: div{ height:500px; } #aside{
異或操作符交換兩個整數
異或:相同為0 不同為1 例:一位二進位制異或取值表 取值 取值 結果 0 0 0 0 1 1 1 0 1 1 1 0 那麼我們交換一個兩個整數值就不需要使用中間值了 public static void main(String[] args) { int a = 2; //二進
如何使用指標形參交換兩個整數的值(詳解)
函式內部通過解引用操作改變指標所指的內容 程式碼塊 #include <iostream> using namespace std; int swap(int *a,int *b); int main() { int *p,*q;
牛客網 - 判斷二進位制半整數(三種方法)
題目連結:https://ac.nowcoder.com/acm/contest/326/A 時間限制:C/C++ 1秒,其他語言2秒 空間限制:C/C++ 262144K,其他語言524288K 64bit IO Format: %lld 題目描述 10年後,tokitsukaze大佬
使用指標形參交換兩個整數的值
樓主是個小白,C++Primer看到第六章,做練習的時候遇到了點小問題,解決了以後到這裡來跟大家分享一下。 題目是要求使用指正形參交換兩個整數的值。 我心想,這還不簡單,恩,開始動手了。 #include<iostream> #include&
C語言中交換兩個整數的值之傳值呼叫和傳址呼叫
在C語言中,一說到交換兩個整數的值,大家第一反應可能是這樣的程式碼。定義一個第三方變數來輔助交換。 #include<stdio.h> int main() { int n
C語言實驗——交換兩個整數的值(順序結構)
Problem Description 交換兩個變數的值,由終端輸入兩個整數給變數x、y,然後交換x和y的值後,輸出x和y。 Input 從鍵盤輸入兩個整數變數x和y; Output 在交換x、y的值後將x和y輸出! Example Input 4 6
交換兩個數的四種方法
一.建立臨時變數 1.普通的方法: 思路簡介:建立一個臨時變數,通過temp=a,a=b,b=temp來實現交換。 缺點:這只是一種假交換,由於這只是在函式內部臨時變數間的交換,所以當函式退出
java 合併兩個陣列 三種解法
package datastruct.usearray; import java.util.Arrays; import java.util.LinkedList; /** * 合併兩個陣列 int a[]={0,1,5,6,7,9,14}; i
《程式設計之美 》2.1 位運算實現—交換兩個整數、求和、整數的二進位制表達中1的個數
序 能否利用位運算高效的實現部分演算法是面試中的常見考題,現在講該部分總結如下。 一、不用額外變數交換兩個整數的值 void exchange(int &a , int &b) {
用異或交換兩個整數的陷阱
前面我們談到了,可用通過異或運算交換兩個數,而不需要任何的中間變數。 如下面: void exchange(int&a,int&b) { a ^=b; b ^=a; a ^=b; } 然而,這裡面卻存在著一個非常隱蔽的陷阱。通常我們