不借助第三者實現兩個變數的交換(java&&C)
1.原理:a^b^b = a
2.實現
java:
package javaPractice; import java.util.*; public class Exchange { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); a = a^b; b = a^b; a = a^b; System.out.println("交換後的值為a和b分別為"+a+","+b); } }
C語言:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a,b;
printf("input a ,b:\n");
scanf_s("%d%d",&a,&b);
a = a^b;
b = b^a;
a = a^b;
printf("after swaping \na:%d\nb:%d\n",a,b);
system("pause");
return 0;
}
相關推薦
不借助第三者實現兩個變數的交換(java&&C)
1.原理:a^b^b = a 2.實現 java: package javaPractice; import java.util.*; public class Exchange { public static void main(String[] args) { Scanne
實現兩個變數的互換(不借助第三個變數)
變數的互換常見於陣列排序演算法中,當判斷兩個陣列元素需要互換時,將建立一個臨時變數來共同完成互換,臨時變數的建立增加了系統資源的消耗,如果需要互換的是兩個整型型別的變數,那麼可以使用更高
java 實現兩個變數的互換(不借助第三個變數,即中間變數、臨時變數)
變數的互換常用在陣列排序演算法中,當判斷兩個陣列元素互動時,需要藉助第三個變數來實現,即需要建立一個臨時變數來共同完成互換,但是臨時變數的建立增加了系統資源的消耗,如果需要交換的是兩個整數型別的變數,
異或運算來實現兩個變數互換
一般情況下,如果我們要實現兩個變數互換需要藉助於一個第三方臨時變數,這個臨時變數可以臨時存放某一個變數的值,幫助我們完成值的交換。有沒有不需要其他變數、直接實現值互換的方法呢? 答案是:當然有。 &n
JAVA語法——實現兩個變數互換
具體細節見:https://blog.csdn.net/wwt18811707971/article/details/78291490 package 實現兩個變數的互換; import java.util.Scanner; public class 實現兩個變數的互換 {
Office檔案的奧祕——.NET平臺下不借助Office實現Word、Powerpoint等檔案的解析
【題外話】 這是2010年參加比賽時候做的研究,當時為了實現對Word、Excel、PowerPoint檔案文字內容的抽取研究了很久,由於Java有POI庫,可以輕鬆的抽取各種Office文件,而.NET雖然有移植的NPOI,但是隻實現了最核心的Excel檔案的讀寫,
Office檔案的奧祕——.NET平臺下不借助Office實現Word、Powerpoint等檔案的解析(一)
【題外話】 這是2010年參加比賽時候做的研究,當時為了實現對Word、Excel、PowerPoint檔案文字內容的抽取研究了很久,由於Java有POI庫,可以輕鬆的抽取各種Office文件,而.NET雖然有移植的NPOI,但是隻實現了最核心的Excel檔案的讀寫,所以之後查了很多資料才實現了
Office檔案的奧祕——.NET平臺下不借助Office實現Word、Powerpoint等檔案的解析(三)
【題外話】 我突然發現現在做Office文件的解析要比2010年的時候容易得多,因為文件從2010年開始更新了好多好多次,讀起來也越來越容易。寫前兩篇文章的時候參考的好多還是微軟的舊文件(2010年的),寫這篇的時候重下了所有的文件,發現每個文件都好讀得多,整理得也更系統,感覺微軟真的是用心在做這個開放的
Python兩個變數交換值【同時賦值的原理】
''' 提示:Python中變數儲存的都是地址 同時賦值的原理就是,等號右側是一個元組 而元組定義後都會在記憶體中建立一個空間,並且儲存元組中各個元素的地址,Python中每一個型別資料都是物件,也都是
兩個變數交換的四種方法(Java)
對於兩種變數的交換,我發現四種方法,下面我用Java來演示一下。 1.利用第三個變數交換數值,簡單的方法。 (程式碼演示一下) 1 class TestEV 2 //建立一個類 3 { 4 public static void main(String[]args) 5
一個整數陣列中,有兩個元素只出現一次,其他所有元素均出現兩次。 找出只出現一次的那兩個元素。(java實現)
一個整數陣列中,有兩個元素只出現一次,其他所有元素均出現兩次。 找出只出現一次的那兩個元素。 思路大概是這樣的:因為除了這兩個只出現一次的數字外,其餘都是成對出現的,有一種運算子,異或運算,兩個相同的數字異或之後為0,所以將陣列中所有的數字依次異或,結果就是這個兩個支出現一
實現兩個資料交換的演算法實現
1,用記憶體交換的方式寫一個交換兩個資料的巨集 #define <stdio.h> #include <string.h> #define swap(a, b) \ { char tempBuff[10]; memcmp(tempB
java版——實現兩個數值交換的四種方式
實現兩個數值交換,最常用的莫過於中間變數法,那是不是還有別的方式呢。請看下文: class Operator { // 實現兩個數值交換的多種方式 public static void main(
LeetCode 88. 合併兩個有序陣列(java 實現)
給定兩個有序整數陣列 nums1 和 nums2,將 nums2 合併到 nums1 中,使得 num1 成為一個有序陣列。 說明: 初始化 nums1 和 nums2 的元素數量分別為 m 和 n。 你可以假設 nums1 有足夠的空間(空間大小大於或等於 m + n
我有500w個單詞,你幫忙設計一個數據結構來進行儲存,存好之後,我有兩個需求。(程式人生程式碼copy)
1、來了一個新的單詞,需要判斷是否在這500w個單詞中 2、來了一個單詞字首,給出500w個單詞中有多少個單詞是該字首 package cango.scf.common.util; import java.util.HashMap; import java.util.
自定義介面內部類的兩個具體應用(跨類傳值)
個人理解,Android開發中的介面內部類和 C#中委託和事件的作用是一樣的 觸發某類中定義的事件後,會執行所有繫結到這個事件上的方法,這些方法在其它不同的類中 例子一: 例子二:(使用自定義介面內部類實現主Acti
交換兩個變量的值,不借助第三個變量的 三種方法(JS實現)
clas img 進行 blog 算法 並且 pos 成交 方法 第一種:算術運算法 var a = 10; var b = 12; a = b - a; b = b - a; a = b + a; 它的原理是:把a、b看做數軸上的點,圍繞兩點間的距離來進行計算。
一道簡單的演算法題:不借助第三變數來交換兩個變數的值
今天做筆試碰到一道簡單的演算法題:不借助第三變數來交換兩個變數的值,記錄一下。 交換兩個變數的值的普遍做法都是藉助第三變數,這樣具有較高的可讀性。 a = 3 b = 5 t = a a = b b = t 但是,如果記憶體有限,只允許用2個變數呢? 強大的CS當然有辦法解決
如何在不借助其他函式和第三個變數的情況下,更換兩個變數的值?
如題,這是一個有趣的小題目。具體方法如下: ▍方法一 var a = 3; var b = 4; a = a + b; // 7 b = a - b; // 3 a = a - b; /
兩個變數資料交換的經典用法,只使用兩個變數,不借助第三個變數
1. 在 js 中,使用異或 ^ 的方式進行資料交換: var a = 32; var b = 48; a = a ^