精华内容
下载资源
问答
  • Java基础交换A和B

    千次阅读 2018-12-07 16:21:58
    使用Java交换A和B来波基础代码 import java.util.Scanner; public class Main { public static void main(String[] args) { // 输入a和b Scanner sc = new Scanner(System.in); int a = sc.nextInt()...

    使用Java交换A和B来波基础代码

    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            // 输入a和b
            Scanner sc = new Scanner(System.in);
            int a = sc.nextInt();
            int b = sc.nextInt();
            // 引入第三个变量交换a和b
            thirdVariable(a, b);
            // 不引入第三个变量直接交换a和b
            simpleChange(a, b);
            // 通过异或运算交换a和b
            xorChange(a, b);
        }
    
        private static void xorChange(int a, int b) {
            a = a ^ b;
            b = a ^ b;
            a = a ^ b;
            System.out.println("通过异或运算交换a和b:a = " + a + ",b = " + b);
        }
    
        private static void simpleChange(int a, int b) {
            a = a + b;
            b = a - b;
            a = a - b;
            System.out.println("不引入第三个变量直接交换a和b:a = " + a + ",b = " + b);
        }
    
        private static void thirdVariable(int a, int b) {
            int c;
            c = a;
            a = b;
            b = c;
            System.out.println("引入第三个变量交换a和b:a = " + a + ",b = " + b);
        }
    }
    

    输出结果:

    D:\java\jdk8\bin\java 
    123
    456
    引入第三个变量交换a和b:a = 456,b = 123
    不引入第三个变量直接交换a和b:a = 456,b = 123
    通过异或运算交换a和b:a = 456,b = 123
    

    那么,效率如何呢?

    交换方法通过循环100万次输出结果如下:

    D:\java\jdk8\bin\java 
    123
    456
    引入第三个变量交换a和b:a = 123,b = 456,1000000次循环耗时:4
    不引入第三个变量直接交换a和b:a = 123,b = 456,1000000次循环耗时:4
    通过异或运算交换a和b:a = 123,b = 456,1000000次循环耗时:6
    

    异或运算效率最低?
    暂时还不能从更深的方面解释其原理。

    但是,交换两个数耗时很短,以上方法均可使用!

    Over。

    展开全文
  • java 如何不增加变量 交换 a和b

    千次阅读 2013-07-09 21:03:51
    在网上看到一道题,就是有 a b 如何不通过增加变量 交换a和b。在网上找了找有两种方式 ,一种是根据与或关系交换,另外一种就是根据差值来计算。 这里主要是讲一下通过 比较差值交换。 package ...

    在网上看到一道题,就是有 a 和 b 的值 如何不通过增加变量 交换a和b 的值。在网上找了找有两种方式 ,一种是根据与或关系交换,另外一种就是根据差值来计算。

    这里主要是讲一下通过 比较差值交换。

    package com.datastructure.exchange;
    
    public class Exchange {
    	
    	private int a = 5;
    	private int b = 12;
    	
    	protected void changeUseTemp(){
    		int temp = 0;
    		temp = a;
    		a = b;
    		b = temp;
    	}
    	
    	protected void changeNotUseTemp(){
    		a = b - a;//a 现在为 b 和 a 之间的差 
    		b = b - a;//b 减去 a(此时a 为 b 和 a 的差) 此时 b 的值等于 a了
    		a  = b + a;//b(此时b 的 值 为a) 加上 a(此时a 为 b 和 a 的差) 的值等于 b
    	}
    	
    	protected void outPut(){
    		System.out.println("a = " + a + " b = " + b);
    	}
    	
    	public static void main(String[] args) {
    		Exchange ex = new Exchange();
    		ex.changeNotUseTemp();
    		ex.outPut();
    	}
    	
    
    }
    


    其中不通过中间变量 求差值的交换方式,也可以求 b = b - a 之间的差值,但其他代码需要修改一下即可。如果有兴趣的同学 也可以在网上找找与或关系交换的方式

    b = b - a;
    a = a + b;
    b = a -b;


    展开全文
  • Java交换a和b值的三种方法

    千次阅读 2020-11-17 15:03:56
    方法1:定义中间变量法 // 最容易想到的,定义一个 k ,用其交换。 public class Test04 { public static void main(String[] args... System.out.println("初始值a是"+a); System.out.println("初始值b是"+b); int

    方法1:定义中间变量法

    // 最容易想到的,定义一个 k ,用其交换。
    public class Test04 {
        public static void main(String[] args) {
            // 互换ab值
            int a = 1;
            int b = 2;
            System.out.println("初始值a是"+a);
            System.out.println("初始值b是"+b);
            
            int k = 0 ;
            k = a;
            a = b;
            b= k;
    
            System.out.println("新值a是"+ a);
            System.out.println("新值b是"+ b);
        }
    }
    

    方法2:对象

    int k = {
    a:b,
    b:a
    }
    b=k.b;
    a=k.a;
    
    System.out.println("新值a是"+ a);
    System.out.println("新值b是"+ b);
    

    方法3:数组

    var array= [a,b];
    a=array[1];
    b=array[0];
    
    a = [b,b=a][0];
    System.out.println("新值a是"+ a);
    System.out.println("新值b是"+ b);
    
    展开全文
  • 首先明白Java的数据类型分为两种:基本数据类型 引用数据类型  java中的参数传递机制:传递  形参是基本数据类型的,将实参的传递给形参的基本数据类型的变量 形参是引用数据类型的,将实参的引用类型...

    首先明白Java的数据类型分为两种:基本数据类型引用数据类型 

    æ°æ®ç±»ååå

    java中的参数传递机制:值传递 

    • 形参是基本数据类型的,将实参的传递给形参的基本数据类型的变量
    • 形参是引用数据类型的,将实参的引用类型变量的值(对象的首地址)传递给形参

    二者的概念:

    1)基本类型:简单数据类型是不能简化的、内置的数据类型、由编程语言本身定义,它表示了真实的数字、字符和整数。

    2)引用数据类型:Java语言本身不支持C++中的结构(struct)或联合(union)数据类型,它的复合数据类型一般都是通过类或接口进行构造,类提供了捆绑数据和方法的方式,同时可以针对程序外部进行信息隐藏。

    Java数据类型在内存中的存储

    1)基本数据类型的存储原理:所有的简单数据类型不存在“引用”的概念,基本数据类型都是直接存储在内存中的内存栈上的,数据本身的值就是存储在栈空间里面,而Java语言里面八种数据类型是这种存储模型;

    2)引用类型的存储原理:引用类型继承于Object类(也是引用类型)都是按照Java里面存储对象的内存模型来进行数据存储的,使用Java内存堆和内存栈来进行这种类型的数据存储,简单地讲,“引用”是存储在有序的内存栈上的,而对象本身的值存储在内存堆上的;

    区别:基本数据类型和引用类型的区别主要在于基本数据类型是分配在栈上的,而引用类型是分配在堆上的(需要java中的栈、堆概念)

     

    那么如何交换两个数值呢?

    那么可以传递引用类型的数据,如对象或者数组,下面是传递的数组:

    public class Swap5
    {
        public static void main(String[] args)
        {
            int[] i = {3, 5};
    
            swap(i);
            System.out.println(i[0]);
            System.out.println(i[1]);
        }
    
        public static void swap(int[] a)
        {
            int temp = a[0];
            a[0] = a[1];
            a[1] = temp;
        }
    }

     

    展开全文
  • Javaa和b互换有哪些方法

    千次阅读 2020-07-21 23:09:33
    相当于我们先让a储存a+bb只需要求出 - b就是aa可以通过b已经得到的a和自己做差求出b。 这种方法稍微不易理解,而且存在溢出风险,在没有确定数据大小的时候应该注意 a=a+b; b=a-b; a=a-b; 第...
  • Java 交换两个变量的方法

    千次阅读 2018-09-01 13:59:26
    Java 交换两个变量的方法 第一种:使用第三个变量进行交换 int a = 5; int b = 6; int c = a; a = b; b = c; 输出结果截图: 第二种:不使用第三个变量(利用加法) int a = 5; int b = 6; a = a +...
  • 不用临时变量交换a,b值的三种方法

    千次阅读 2019-03-30 19:27:50
    交换a,b是很基本的程序算法,但是绝大多数程序员加入了第三个参数完成二者的交换,那么有没有什么办法不用第三个参数实现交换的呢???来看以下的三种算法
  • 交换a/b值的奇技淫巧

    千次阅读 2020-02-05 21:54:47
    a = a + b; b = a - b; a = a - b;
  • Java 值交换详解

    千次阅读 2016-07-16 17:06:17
    Java中有四种交换方式,分别是基本数据类型 数组,实例对象, String交换 下面我一一举个例子来讲解~ 1.基本数据类型交换 看下面代码: public class Test { public static void main(String[] args) { int a=10;...
  • 交换变量a和变量b

    千次阅读 2020-09-12 15:40:42
    题目描述:输入两个整数a和b交换他两的,然后输出 方法一 直接创建一个临时变量即可完成此功能 代码如下 int main() { int a = 0; int b = 0; printf("请输入两个整数:"); scanf("%d %d", &a, &b);...
  • long a; long b; a = a ^ b;//此时的 a 可以看成是变量 c (上文例子中的 a ^ b = c) ...//这里的 a ^ b == c ^ b == a ,所以此时的 b 就是原来 a a = a ^ b;//同上分析 /*这是性能最好的方式*/
  • 交换a,b 第一种:生成第三方变量(多占内存) int temp = a; //生成第三方临时变量temp,将a的赋给它 a = b; //将b赋给a b = temp; //将临时变量temp的赋给b 这样就完成了a,b之间的交换 第二种:...
  • 交换a,b值,不使用第三个变量

    千次阅读 2019-03-27 17:29:17
    今天做笔试遇到一个问题 //加减法 int a=3; int b=5; a=a+b; b=a-b;//b=3 a=a-b;//a=5 ...//乘除法:可以处理整型浮点型变量,但在处理浮点型变量时也存在精度损失问题,b必不为0。 int a=3; int...
  • Java对象交换和值交换的相关问题

    千次阅读 2009-01-18 00:13:00
    在开始之前,大家在脑子运行一下下面的程序,不难得出运行的结果是: a is : 3 b is : 0 (结果execute方法中的a,b没有得到交换)毫无意外,对于这个结果。在C++中,我们一般是用引用指针来解决交换的问题,不过...
  • 编写程序,输入两个整数a和b交换它们的,然后输出。 输入 两个整数a和b 输出 ab交换后的。注意:两个数之间有1个空格,输出后换行。 样例输入 3 5 样例输出 5 3 提示 来源 hnldyhy 方法一 #...
  • 变量交换Java面试考题): int a = 10; int b = 20; 1.借助中间量交换 int temp = a; a = b; b = temp; 原理:类似于两杯水互换杯子,需要借助第三个杯子来实现。 2.位移运算交换 a = a ^ b; b = a ^ b; a = a ^ b...
  • java交换两个的三种方法 经典

    千次阅读 2018-08-02 19:42:07
    1.中间变量(在开发中常用) int c=a; a=b; b=c; System.out.println("a: "+a+" b: &...+b);... 2.... a=a^b;... b=a^b;//a^b^b=a a=a^b;//a^b^a=b Syst...
  • 方法一(最常用) 通过定义一个临时变量来达到交换的效果: int a = 5; int b = 8; int temp = aa = bb = temp;...优点:简单明了,易于理解应用,数值外类型变量也可使用;...b = a - b; a = a - b; 优点:不...
  • 不使用第三变量,交换ab两个

    千次阅读 2015-03-21 20:08:10
    b=a-b;//a==8,b==3 a=a-b;//a==5,b==3例二: 利用异或运算符^进行交换。 int a=3,b=5; a=a^b; b=a^b; a=a^b;结果为:a=5,b=3;why? 符号 ^ 称为异或运算符, a^b的运算过程是: 011 101 每一位一一对应,...
  • 方法1:实现两个变量值交换,不使用第三个变量 我们可以通过数学运算中的差值来实现交换   int a=10,b=20;   ...a=a+b;...b=a-b;...我们将a看做咖啡,b看做可乐,当我们要讲a,b两个杯子的饮品交换
  • //编写程序,输入三个整数给a,b,c,然后交换它们的,最终使a存放bb存放c的、c存放a //除了上述a,b,c变量,只能再定义1个变量。 #include <stdio.h> int main() { int a, b, c, temp; scanf_s...
  • 如何在java里面实现值交换

    千次阅读 多人点赞 2019-05-07 00:54:26
    看到一道题目,如何实现java值交换 看起来好像很简单 public static void main(String[] args) { Integer a=1; Integer b=2; swap(a,b); //要求输出a=2 b=1 System.out.println("a="+a+",b="+b); ...
  • Java 如何用方法交换两个变量的

    千次阅读 2018-01-16 09:19:06
    在学习C++的时候,我们需要学习如何用指针方法来交换两个变量的,比如swap(int*, int*)。而当我学习Java的时候,因为没有指针,所以我们需要另求他法。这引起了我下面的思考: (1)方法不能修改基本类型的...
  • //a=3,b=2 a b-b --也就是说b为之前的a a=a-b; //a=1,b=2 a b-之前的a --也就是说a为之前的b System.out.println(a+" "+b); //一个数据针对另一个数据位异或两次,该数不变 //a^b与上面的a+b...
  • 交换 #include<stdio.h> int main() { int a, b, c; scanf("%d%d%d",&a, &b, &c); printf("%f\n",(a+b+c)/3.0); return 0; }
  • 在了解如何用Java交换两个变量的之前,我们来看看C语言是如何交换两个变量的吧 C语言 #include<stdio.h> //编写一个函数,名为change,用于交换两个数字的 void change(int &a,int& b){ int ...
  • 题目来源: NEUQ OJ平台 平台要求:1、不要写注释 2、类名写为Main 注:本人目前正在学习java语言,故代码语言为java语言。...——————————————————...题目:1002:A+B(基本输入输出2) ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 105,767
精华内容 42,306
关键字:

java如何交换a和b的值

java 订阅