不用中间变量交换两个数 swap(a,b);

#include <iostream>
using namespace std;
int main () {
    int a = 3;
    int b = 5;
    cout<<"a="<<a<<",b="<<b<<endl;
    a = a+b;    ///a=7
    b = a-b;    ///b=3;
    a = a-b;    ///a=5
    cout<<"a="<<a<<",b="<<b<<endl;
    return 0;
}

输出:

a=3,b=5

a=5,b=3

时间: 2024-08-01 20:26:37

不用中间变量交换两个数 swap(a,b);的相关文章

不使用中间变量交换两个数

/*不交换中间变量交换两个数*/ #include <iostream> using namespace std; void Fun(int&x,int&y) { x=x+y; y=x-y; x=x-y; } int main() { int a=3,b=4; cout<<"交换前"<<endl<<"a="<<a<<"\t"<<"b=&q

Java中不使用中间变量交换两个数

在程序中实现交换两个数的功能并不复杂,但如果不使用中间变量,就需要动一下脑筋.在本文介绍了两个方法(其实原理都是一个) .其基本原理就是数的中和. 也就是说,通过某种运算(二元运算)将a和b两个数变成一个数,并保存在其中一个变量中.然后再通过同 样的运算符将a或b中和掉.这样实际上是利用了a或 b本身作为了中间变量. 先看第一个算法. static class Num { int a; int b; } public static void swap1(Num num) { num.a = nu

不使用中间变量交换两个数(Java版)

本文为原创,如需转载,请注明作者和出处,谢谢!     在程序中实现交换两个数的功能并不复杂,但如果不使用中间变量,就需要动一下脑筋.在本文介绍了两个方法(其实原理都是一个).其基本原理就是数的中和.也就是说,通过某种运算(二元运算)将a和b两个数变成一个数,并保存在其中一个变量中.然后再通过同样的运算符将a或b中和掉.这样实际上是利用了a或b本身作为了中间变量.     先看第一个算法. static   class  Num {      int  a;      int  b; } pub

C++ 全排序算法中交换两个数

问题描述 C++ 全排序算法中交换两个数 #include<iostream> using namespace std; void swap(int& a, int& b){ a = a + b; b = a - b; a = a - b; } void swap1(int&a, int& b){ int temp = b; b = a; a = temp; } void perm(int a[], int i, int n){ if(i == n - 1){

swap() 交换两个数

#include <stdio.h> void swap(int *x, int *y)//传入指针 { int tmp; tmp = *x; *x = *y; *y = tmp; } int main() { int a = 3; int b = 5; printf("a = %d, b = %d\n", a, b); swap(&a, &b); printf("a = %d, b = %d\n", a, b); return 0; }

异或交换两个数

 交换a和b: #include <iostream> using namespace std; int main() {     int a,b;     while(cin>>a>>b)     {         a=a^b;         b=b^a;         a=a^b;         cout<<a<<" "<<b<<endl;     }     return 0; }

赋值运算-不用三方变量,交换两个变量值。

问题描述 不用三方变量,交换两个变量值. 简单的: a=a+b; b=a-b; a=a-b; 这种好想起, 恶心点的比如要求最短: a^=b^; 谁解释下这个异或. 还有这个: a=b+(b=a)*0 这个深度怎么理解赋值执行顺序. 解决方案 如何交换两个变量值,不能用中间变量C语言交换两个变量值不利用额外变量 解决方案二: a=a+b; b=a-b; a=a-b; 解决方案三: 这里的异或是按位,值不同为1 比如 1^2 : 01 1 10 2 11 3 a=b+(b=a)*0 先计算括号里面

PHP不用第三个变量交换两个变量的值的方法总结

"PHP不用第三个变量交换两个变量的值"这个题看到过好多次了,看来面试确实喜欢考这道题.今天,对于这个题目,我自己总结了几种方法,可能不全,大家来互相补充. 方法一:使用字符串截取 <?php $a = "fsdfds"; $b = "xiaorui"; $a = $a.$b; $b = substr($a,0,strlen($a)-strlen($b)); $a = substr($a,strlen($b)); echo $a."

交换问题-两个数交换,但不加入第三个数,对于这样的做法具体栈中是怎么一个顺序?

问题描述 两个数交换,但不加入第三个数,对于这样的做法具体栈中是怎么一个顺序? 两个数交换,但不加入第三个数,对于 int num1 =1; int num2 =2; System.out.println("交换前---num1="+num1+" num2="+num2); num2 = num1 +(num1 = num2)*0; System.out.println("交换后---num1="+num1+" num2="+