黑马程序员技术交流社区

标题: 发现一种另类的置换位置的方法,仅限数字 [打印本页]

作者: rzd5995692    时间: 2015-3-31 20:21
标题: 发现一种另类的置换位置的方法,仅限数字
最近无意间看到一种置换位置的方法 如下:
int a=5;
int b=6;

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



作者: 龙腾浩少    时间: 2015-3-31 20:54
总结了几种置换位置的方法
int a = 3, b = 8;               
//交换两个数
1、利用第三方变量
int temp;
temp = a;
a = b;
b = temp;

2、不利用第三方变量,利用算术运算符
b = b - a;
a = a + b;
b = a - b;

3、不利用第三方变量,利用算术运算符
a = a + b ; //如果a和b的值都非常大,容易超出int范围
b = a - b;
a = a - b;
               
4、不利用第三方变量,利用逻辑运算符
a = a ^ b;
b = a ^ b;//(a^b)^b        一个数异或同一个数两次,还是这个数
a = a ^ b;//(a^b)^((a^b)^b)

5、不利用第三方变量,利用算术运算符和赋值运算符
a = a + b -(b = a);

作者: 没劲睡觉    时间: 2015-3-31 21:14
这个方法不好
作者: Hksangs    时间: 2015-3-31 21:18
还是第三方变量的方式好理解
作者: Fruious    时间: 2015-3-31 21:22
顶你一个
作者: doomsday    时间: 2015-3-31 21:31
楼主这都写错了吧 最后一个是a-b吧
作者: Heart灬空城    时间: 2015-3-31 21:45
重在理解




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2