# 题目

不使用新变量,交换两个变量的值。

# 思路

方法一:使用加减法操作,交换两个变量的值。

A = A+B

B = A-B

A = A-B

方法二:使用异或运算,交换两个变量的值

A = A^B

B = A^B

A = A^B

# 代码

#include <iostream>
using namespace std;void fun1(int m,int n)
{cout << "方法一,基于加减法,交换两个变量" << endl;m = m + n;n = m - n;m = m - n;cout<<m<<"    "<<n<<endl;
}void fun2(int m,int n)
{cout << "方法二,基于异或运算,交换两个变量" << endl;m = m^n;n = m^n;m = m^n;cout<<m<<"    "<<n<<endl;
}
int main()
{int m = 10;int n = 20;cout << "原始数值" << endl;cout<<m<<"    "<<n<<endl;fun1(m,n);fun2(m,n);return 0;
}

转载于:https://www.cnblogs.com/wanglei5205/p/9013045.html

【剑指offer】不使用新变量,交换两个变量的值,C++实现相关推荐

  1. LeetCode_剑指 Offer 57. 和为s的两个数字(利用set、双撞指针两种思路 Java实现)

    题目描述:剑指 Offer 57. 和为s的两个数字 输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s.如果有多对数字的和等于s,则输出任意一对即可. 示例 1: 输入:n ...

  2. 【重点】剑指offer——面试题25:二叉树中和为某一值的路径

    剑指offer--面试题25:二叉树中和为某一值的路径 参考网址:https://www.nowcoder.com/profile/5488508/codeBookDetail?submissionI ...

  3. 剑指offer——面试题17:合并两个排序的链表

    剑指offer--面试题17:合并两个排序的链表 Solution1: 不要犯低级错误... /* struct ListNode {int val;struct ListNode *next;Lis ...

  4. 剑指offer——面试题7:用两个栈实现队列

    剑指offer--面试题7:用两个栈实现队列 Solution1: 注意栈的基本操作与vector略有不同~ class Solution { public:void push(int node) { ...

  5. php比较两个变量的值_总结PHP不用第三个变量交换两个变量的值的几种方法

    "PHP不用第三个变量交换两个变量的值"这个题看到过好多次了,看来面试确实喜欢考这道题.今天,对于这个题目,我自己总结了几种方法,可能不全,大家来互相补充. 有些仅适用于字符串,方 ...

  6. 不用额外变量交换两个整数的值

    题目 如何不用任何额外变量交换两个整数的值 基本思路 如果给定整数a和b使用如下三行代码即可交换a和b的值: a = a ^ b b = a ^ b a = a ^ b 如何理解这三行代码的具体功能呢 ...

  7. C++不借助第三变量交换两个变量的值

    C++不借助第三变量交换两个变量的值 源代码: #include<iostream> using namespace std; int main(){int x,y;cout<< ...

  8. PHP中不用第三个变量交换两个变量的值

    相信大家在PHP面试或者学习中经常会遇到这个问题就是"不用第三个变量来交换两个变量的值",今天正对这个问题来讨论一下: 第一种方法:首先会想到的 这种方法简单可行,顺利的交换了两个 ...

  9. 不使用第三变量交换两个变量的值

    在 Java 中,经常会需要交换两个变量的值,我们一般是使用第三变量完成,比如 temp = a; a = b; b = temp; 这样的写法确实能达成目标,但因此而引入了第三变量,对资源的消耗增加 ...

  10. 不借助第三方变量交换两个变量的值(多种方法)

    转载自:https://blog.csdn.net/kangkermit/article/details/21371159 通常我们的做法是(尤其是在学习阶段):定义一个新的变量,借助它完成交换.代码 ...

最新文章

  1. dede:php不显示,dede 织梦编辑框显示不出来的问题
  2. 分页浏览的导航栏Bootstrap和js两种方法
  3. centos 5 6安装本地yum源
  4. go build -X 的妙用
  5. 身边的设计模式(三):抽象工厂 与 依赖注入
  6. find、grep,which、whereis
  7. android 标题栏不显示?
  8. ROS 搞懂多话题回调机制以及消息队列
  9. python第三方库文件传输助手_Python与微信——itchat包
  10. 我那曲折的英语学习经历:学不学语法,天差地远 转载自豆瓣
  11. 扒一扒网易云课堂python课程,发现还有不少可以白嫖的免费好资源
  12. DNT精英论坛(暨.NET北京俱乐部)第1期:见证.NET,风口上的成功案例!
  13. 苹果6s微信提示未连接服务器,苹果6s微信无法打开,一直显示正在载入怎么处理?...
  14. Leetcode 120. Triangle 三角形问题(动态规划经典) 解题报告
  15. Arno,第一个NFV开源平台
  16. 「Python 网络自动化」Nornir—— Inventory(主机清单)介绍
  17. 转:影视娱乐站推广的几个方法
  18. Jenkins 更新网站静态文件
  19. 使用ivx中表格组件的经验总结
  20. oracle10g windows7

热门文章

  1. JBOSS的管理员账号和密码设定
  2. 非常实用的Windows7进阶功能
  3. linux高级运维要会的,linux高级运维必会命令
  4. php 时间 插件,PHP中Carbon日期时间处理利器详解
  5. python交并补_Python 集合的交差并补操作及方法
  6. Mysql —— C语言链接mysql数据库,实现可以增删改查的角色权限登录系统
  7. 计算机网络五层协议简介
  8. Python 常用Web框架的比较
  9. isNumeric isInteger isDate
  10. Heritrix 3.1.0 源码解析(八)