1. 程式人生 > >交換兩個整數的三種方法

交換兩個整數的三種方法

交換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; } 然而,這裡面卻存在著一個非常隱蔽的陷阱。通常我們