精华内容
下载资源
问答
  • Java中不使用第三个数交换两个数

    千次阅读 2017-11-07 16:57:57
    不使用第三个数交换两个数

    一般交换两个数,都是声明第三个数,如:

    int a=1;
    int b=2;
    int c;//交换a b  ,生成c
    c=a;
    a=b;
    b=c;

    如果不想使用第三个数,可以巧妙的运用四则运算,如:

    int a=13;
    int b=23;
    a=b-a;
    b=b-a;
    a=a+b;

    还有就是使用到位运算符的方式,异或,符号为 ^ ,规则是:两个操作数,转为二进制,相同则为0,不同则为1。

    int x=10; //  1010
    int y=5;// y= 0101
    x=x^y;  // x= 1111  =15
    y=y^x;//   y= 1010  =10
    x=x^y;//   x= 0101  =5


    展开全文
  • 在网易游戏的面试中出现过:要求不使用第三个数交换两个数的值,例如:a=2;b=3,不使用其他变量交换a和b的值: private void swap1() { int a=10,b=12; a=b-a; //a=2;b=12 b=b-a; //a=2;b=10 a=...

    难易程度:★★★

    重要性:★★★★★

     

    网易游戏的面试中出现过:要求不使用第三个数交换两个数的值,例如:a=2;b=3,不使用其他变量交换a和b的值:

    private void swap1() {
            int a=10,b=12;
            
            a=b-a; //a=2;b=12
            b=b-a; //a=2;b=10
            a=b+a; //a=12;b=10
        }
        private void swap2() {
            int a=10,b=12;
    
            a=a+b;//a=22,b=12
            b=a-b;//a=22,b=10
            a=a-b;//a=12,b=10
        }

     


    扫描下方二维码,及时获取更多互联网求职面经javapython爬虫大数据等技术,和海量资料分享
    公众号菜鸟名企梦后台发送“csdn”即可免费领取【csdn】和【百度文库】下载服务;
    公众号菜鸟名企梦后台发送“资料”:即可领取5T精品学习资料java面试考点java面经总结,以及几十个java、大数据项目资料很全,你想找的几乎都有

    扫码关注,及时获取更多精彩内容。(博主今日头条大数据工程师)

    扫码关注,及时获取更多精彩内容。(博主今日头条大数据工程师)

     

    展开全文
  • 使用异或 #include<bits/stdc++.h> using namespace std; int main(void) { int a=9,b=5; a^=b; b^=a; a^=b; cout<<a<<b; }

    法1:
    使用异或

    #include<bits/stdc++.h>
    
    using namespace std;
    
    int main(void) 
    {
    	int a=9,b=5;
    	a^=b;
    	b^=a;
    	a^=b;
    	cout<<a<<b;
    }
    

    法2:

    #include<bits/stdc++.h>
    
    using namespace std;
    
    int main(void)
    {
    	int a = 2, b = 1;
    	a += b;
    	b = a - b;
    	a -= b;
    	cout << a << " " << b;
    }
    
    展开全文
  • 在网易游戏的面试中出现过:要求不使用第三个数交换两个数的值,例如:a=2;b=3,不使用其他变量交换a和b的值: private void swap1() { int a=10,b=12; a=b-a; //a=2;b=12 b=b-a; //a=2;b=10 a=b+a; //...

    难易程度:★★★

    重要性:★★★★★

    在网易游戏的面试中出现过:要求不使用第三个数交换两个数的值,例如:a=2;b=3,不使用其他变量交换a和b的值:

    private void swap1() {
            int a=10,b=12;
            
            a=b-a; //a=2;b=12
            b=b-a; //a=2;b=10
            a=b+a; //a=12;b=10
        }
        private void swap2() {
            int a=10,b=12;
     
            a=a+b;//a=22,b=12
            b=a-b;//a=22,b=10
            a=a-b;//a=12,b=10
        }
    复制代码

    扫描下方二维码,及时获取更多互联网求职面经javapython爬虫大数据等技术,和海量资料分享:公众号后台回复“csdn”即可免费领取【csdn】和【百度文库】下载服务;公众号后台回复“资料”:即可领取5T精品学习资料java面试考点java面经总结,以及几十个java、大数据项目资料很全,你想找的几乎都有

    转载于:https://juejin.im/post/5cbd75e0f265da038557f824

    展开全文
  • 在这里提供2种需要创建第三个变量就能交换2个变量的值的方法。 这里以快排中,交换已知2个下边对应的元素作为例子 先来看需要创建第三个变量的方法: public static void swap(int[] arr, int i, int j) { ...
  • 现在有两个变量 a=10 b=20,请把两个数交换,且不使用第三个变量 加减法 a = a+b //a = 30 b = a-b //b=30-20=10 a = a-b //a=30-10=20 异或法 异或的基本知识: a ^ b ^ b = a 一个数异或两次另一个数还是等于...
  • 不管是实际用途还是笔试中都会碰到这问题。 方式一: int a = 23; int b = 45; a = a^b; b = b^a; a = a^b; System.out.println(a+"=="+b);
  • 原文链接:如何不使用第三个变量来交换两个数的值
  • 交换两个数字: 1 using System; 2 3 namespace ConsoleApplication 4 { 5 class Program 6 { 7 static void Main(string[] args) 8 { 9 // 交换2个数字的方法 10 11 ...
  • 实现方法 #include <iostream> using namespace std; void bit_swap(int &a, int &b){ a = a^b; b = a^b; a = a^b; } int main(){ int a=1, b=89; bit_swap(a, b); cout <... 
  • import java.util.*;...主要使用了异或XOR “^”符号 根据 如a=11,b=9.以下是二进制 a=a^b=1011^1001=0010; b=b^a=1001^0010=1011; a=a^b=0010^1011=1001; 这样一来a=9,b=13了。 ...
  • 两个变量a 和 b 如何在不使用第三个变量的情况下实现数值交换,主
  • 昨天在一个技术群中,一大堆人讨论“两个数交换不使用第三个空间”这个问题。当时我给了个答案。 a = a + b; b = a - b; a = a - b; 不过后来发现有数据溢出的问题,比如函数void ChangeAB(int a, int b);...
  • 交换两个数字(不使用第三个变量) 使用工具:VS2019 功能: 1.输入两个数字。 2.交换这两个数字,但不能使用第三个变量。 目录交换两个数字(不使用第三个变量)一、代码部分二、运行结果 一、代码部分 函数实现...
  • Ref : http://blog.csdn.net/kingoverlord/article/details/8825721# Original value...a = 5 b = 4 print("a = %d, b = %d" %(a, b))# Way-01 c = a a = b b = c print("a = %d, b = %d" %(a, b))# Way-02 a = b - a b
  • 对于数A=2,B=3,在引入第三个变量C的条件下,交换使得A=3,B=2。 1. 加法算数运算 原理:如果我们知道数之和和其中一个数,那么就可以得到另一个数。 // 为了更直观地理解,我刻意加入了...
  • 交换两个数的值,不使用第三个变量 int a = 1,b = 2; printf("交换前\n"); printf("a = %d,b = %d\n",a,b); // 用a保存两个数的和 a = a + b; // 将a的值赋值给b.a的值是两个数的和,b的值仍然是b的值,两个数的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 528
精华内容 211
关键字:

不使用第三个数交换两个数