C++ - 两数交换, 不引入第三个变量
来源:互联网 发布:打印机网络共享软件 编辑:程序博客网 时间:2024/06/06 07:22
两数交换, 不引入第三个变量
本文地址: http://blog.csdn.net/caroline_wendy/article/details/15506627
两种方法, 推荐第一种方法;
第一种方法(加减):
a = a+b; b = a-b; a = a-b;
第二中方法(异或):
a = a^b; b=a^b; a=a^b;
即 a ^= b ^= a ^= b;
不推荐使用异或方法,CFAQs里面有说明;
异或方法是未定义的(undefined)和不可移植的(not portably), 对于某些编译器会出现问题.
具体参见: http://c-faq.com/expr/xorswapexpr.html
代码:
/* * test.cpp * * Created on: 2013.11.12 * Author: Caroline */#include <iostream>int main (void) {int a = 2, b = 10;std::cout << "original: ";std::cout << "a = " << a << " b = " << b << std::endl;//加减方法a += b;b = a-b;a -= b;std::cout << "plus&minus: ";std::cout << "a = " << a << " b = " << b << std::endl;//异或方法a ^= b ^= a ^= b;std::cout << "xor: ";std::cout << "a = " << a << " b = " << b << std::endl;return 0;}
- C++ - 两数交换, 不引入第三个变量
- 交换两个数(不引入第三个变量)
- 不引入第三个变量交换两个整型数
- 交换两个数不引入第三个变量
- 不引入第三个变量交换两个数的值
- 两数交换不借助第三变量
- 交换两个数的值,且不引入第三个变量的实现
- 有没有意思,你说了算——不引入第三个变量交换两个整型数
- 用按位异或运算符交换两个数,不引入第三个变量
- C 不引入第三变量交换两个数的值(异或运算符^)
- 不引入第三变量,交换两个数的值
- 两个整数交换(不引入第三个变量)
- 不引入第三个变量交换两个整数的值
- 不用第三个变量进行交换两数
- c# 不使用第三个变量交换两值
- 交互两个数(不引入第三个变量)
- 不使用第三个变量,交换两个数
- 不使用第三个变量,实现两个数交换
- EL表达式截取字符串
- Json lib JsonConfig用法
- 精简java 1.6的jre
- HttpClient简介
- 法国自动化研究所SPArse稀疏编码优化工具包介绍
- C++ - 两数交换, 不引入第三个变量
- 关于int main(int argc,char *argv[])
- Hive中的一种假NULL
- Hive中对科学计数法表示的字符串的转换
- jdbc的事务管理
- java读取字符串中数字
- Hadoop中map数的计算
- image文件图片显示,存储,读取问题
- HDFS bytes read与Map input bytes