如何在不借助其他函式和第三個變數的情況下,更換兩個變數的值?
如題,這是一個有趣的小題目。具體方法如下:
▍方法一
var a = 3;
var b = 4;
a = a + b; // 7
b = a - b; // 3
a = a - b; // 4
▍方法二
var a = 3;
var b = 4;
a = a ^ b; // 7
b = b ^ a; // 3
a = a ^ b; // 4
顯然,上面兩種方法僅針對數字是有效的,對於字串就不能夠生效了,所以下面還有一種對數字和字串都能生效的方法。
▍方法三
var a = "hello"; var b = "world"; a = [b, b = a][0]; console.log(a); // "world" console.log(b); // "hello"
相關推薦
如何在不借助其他函式和第三個變數的情況下,更換兩個變數的值?
如題,這是一個有趣的小題目。具體方法如下: ▍方法一 var a = 3; var b = 4; a = a + b; // 7 b = a - b; // 3 a = a - b; /
在不劃分vlan的情況下,實現兩個網段的ip地址互通
add route 網關 tex terminal 劃分VLAN 技術 water term 簡介: 在不配置vlan的情況下,實現兩個網段的ip地址互通 配置命令 PC1和PC2配置好ip地址和網關的ip地址 在R1路由器的F0/0配置ip地址為192.168.
不考慮順序的情況下,對比兩個陣列是否相同
先說我遇到的需求 不考慮順序的情況下對比兩個json陣列字串是否相同,json字串是一個數組,程式碼和json字串結構如下: public static void main(String[] args) throws IOException {
不借助其他任何軟體防止QQ被盜的小技巧
分享一個小技巧(防止QQ被盜號): 在登入的時候前面加個0,點選登入,如果顯示賬號不存在,是因為你沒有在新增或註冊賬號這兒登入,也就是切換賬號。PC端也可以,如下圖: 手機端演示:
如何在不使用三大地圖的KEY和相關組件的情況下,直接傳參數到相關的H5地圖
style 騰訊 OS oca blank log 經緯度 調試 分隔 以高德地圖為例: window.location.href=‘http://m.amap.com/navigation/index/daddr=104.188206%2C30.858513%2C‘+‘歪
繼承和組合混搭的情況下,構造和析構函數的調用順序
組合 log class urn std 調用父類 parent clas 父類 繼承和組合混搭的情況下: 構造時,先調用父類的構造函數(如果父類還有父類,先執行父類的父類的構造函數,在執行父類的構造函數),再調用組合對象的構造函數,最後調用自己的構造函數;
1.給定兩個整形變數的值,將兩個值的內容進行交換2.不允許建立臨時變數,交換兩個數的內容
1.給定兩個整形變數的值,將兩個值的內容進行交換 #include<stdio.h> int main() { int i = 0; int j = 0; int temp = 0; scanf("%d %d",&i,&j); tem
在utf8和gb2312中 不同編碼情況下,漢字 數字 英文佔的位元組數?
漢字在gbk編碼方式儲存的話,一個漢字佔2個位元組,要是UTF-8的話,一個漢字是3個位元組或者4個位元組。常用漢字是3個,冷門的是4個漢字,所以10個一般是30或30個以上位元組 英文和數字在gbk中佔兩個,utf-8,gb2312中佔1個,GB2312情況下中文佔
不借助第三個變量交換兩個數值類型變量的值
blog 數值 csdn 交換 tails 其中 簡單的 簡單 div 原文地址:http://blog.csdn.net/web_hwg/article/details/75045689 方法一 最簡單的方法是用一個臨時變量 var a = 10, b = 20; va
交換兩個變量的值,不借助第三個變量的 三種方法(JS實現)
clas img 進行 blog 算法 並且 pos 成交 方法 第一種:算術運算法 var a = 10; var b = 12; a = b - a; b = b - a; a = b + a; 它的原理是:把a、b看做數軸上的點,圍繞兩點間的距離來進行計算。
不借助第三個變量,交換兩個變量值的3種方式
int nat AS pri sdn 我們 感謝 方法 span 今天在我們學校的OJ上做題,一道非常簡單的題,突然想試試能不能不借助第三個變量,交換兩個變量值。蒙出來一半了已經,好可惜。現在把方法寫在這裏,希望以後不要忘記。 1 void fun1() 2 {
一道簡單的演算法題:不借助第三變數來交換兩個變數的值
今天做筆試碰到一道簡單的演算法題:不借助第三變數來交換兩個變數的值,記錄一下。 交換兩個變數的值的普遍做法都是藉助第三變數,這樣具有較高的可讀性。 a = 3 b = 5 t = a a = b b = t 但是,如果記憶體有限,只允許用2個變數呢? 強大的CS當然有辦法解決
兩個變數資料交換的經典用法,只使用兩個變數,不借助第三個變數
1. 在 js 中,使用異或 ^ 的方式進行資料交換: var a = 32; var b = 48; a = a ^
不借助第三個變數交換兩個整數
假設兩個數x和y,則有: 方法1,算術運算(加減): x=x+y; //x暫存兩數之和 y=x-y; //y為兩數之和減去y,即原來的x x=x-y; //x為兩數之和減去現在的y(原來的x),變成原來的y 方法2,邏輯運算(異或):
實現兩個變數的互換(不借助第三個變數)
變數的互換常見於陣列排序演算法中,當判斷兩個陣列元素需要互換時,將建立一個臨時變數來共同完成互換,臨時變數的建立增加了系統資源的消耗,如果需要互換的是兩個整型型別的變數,那麼可以使用更高
JavaScript不借助第三個變數交換a,b兩個變數值
交換變數值方案一 最最最簡單的辦法就是使用一個臨時變量了 不過使用臨時變數的方法實在是太low了 var t; t = a; a = b; b = t; 首先把a的值儲存到臨時變數中 然後b賦值給a 最後拿出臨時變數中的a值賦給b 這個辦法是最
交換兩個變數的值,不借助第三個變數的四種方法(學習)
缺點:是隻能用於數字型別,字串之類的就不可以了。a+b有可能溢位(超出int的範圍),溢位是相對的, +了溢位了,-回來不就好了,所以溢位不溢位沒關係,就是不安全。2) 指標地址操作 因為對地址的操作實際上進行的是整數運算,比如:兩個地址相減得到一個整數,表示兩個變數在記憶體中的儲存位置隔了
java 實現兩個變數的互換(不借助第三個變數,即中間變數、臨時變數)
變數的互換常用在陣列排序演算法中,當判斷兩個陣列元素互動時,需要藉助第三個變數來實現,即需要建立一個臨時變數來共同完成互換,但是臨時變數的建立增加了系統資源的消耗,如果需要交換的是兩個整數型別的變數,
面試官在“逗”你係列:不借助第三變數交換兩個變數值的方案你有幾種?
引言 在我們學習程式設計之初,就學習過變數的賦值操作,同時也學習了將一個變數的值賦值給另外一個變數。對於交換兩個變數的值,很多童鞋都有解決方案。然鵝,對於面試官提出的不借助第三變數來交換兩個變數的值,你能想到幾種解決方案呢? 如果你只知道一種方案,請你認真看下去... 如果你知道兩種方案,那麼你可以來了解更
不借助其它變數交換兩變數值的三種演算法
在學習程式語言和進行程式設計的時候,交換兩個變數的值是經常要使用的。通常我們的做法是(尤其是在學習階段):定義一個新的變數,藉助它完成交換。程式碼如下:int a,b;a=10; b=15;int t;t=a; a=b; b=t;這種演算法易於理解,特別適合幫助初學者瞭解計算機程式的特點,是賦值語句的經典應用