如何在没有第三个变量的情况下进行两个变量交换大小

昨天我看到了一个很有意思的一个面试题:如何在没有第三个变量的情况下进行两个变量交换大小

大家再在平时进行两个变量交换大小的时候通常会进行将其中的一个赋值给第三个变量,借助第三个变量进行两个变量交换,如下:

#include <iostream>
#include <algorithm>
using namespace std;
int main(){int m,n;cin >> m >> n;int temp = m;m = n;n = temp;cout << m << " " << n;return 0;
}

但是如果不借助第三个变量的话,那要怎么做呢,这就要有些思维了:

#include <iostream>using namespace std;int main(){int m = 20;int n = 10;m = m + n;//算总和赋值给mn = m - n;//总和减去n就是m,赋值给nm = m - n;//总和减去m就是n,注意因为在上面的时候n就已经被赋值成m了cout << m << endl;cout << n << endl;return 0;
}

嘿嘿,没想到吧大家,没事,纯纯思维题!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/471461.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java8-用流收集数据-6

本章内容口用co1lectors类创建和使用收集器 口将数据流归约为一个值 口汇总:归约的特殊情况 数据分组和分区口 口 开发自己的自定义收集器 我们在前一章中学到&#xff0c;流可以用类似于数据库的操作帮助你处理集合。你可以把Java8的流看作花哨又懒惰的数据集迭代器。它们…

Nuxt3+Vue3(Composition API)+TS+Vite+Ant Design Vue 搭建

最近官网搭建选择了nuxtjs&#xff0c;由于框架更新了&#xff0c;其中语法也有很多变化&#xff0c;中间遇到了一些问题点做下总结。 nuxt3官方文档地址&#xff1a;https://nuxt.com/docs/getting-started/installation 安装 在安装Nuxt3之前&#xff0c;你需要保证你的nod…

中科星图——LANDSAT_8/02/T1/RAW的Landsat8_C2_RAW类数据集

数据名称&#xff1a; Landsat8_C2_RAW 数据来源&#xff1a; USGS 时空范围&#xff1a; 2020年1月-2023年3月 空间范围&#xff1a; 全国 数据简介&#xff1a; Landsat8_C2_RAW数据集是经过缩放和校准的辐射亮度产品&#xff0c;按照数据质量划分为T1和T2。数据质量…

进程地址空间

虚拟地址&#xff1a; 引子&#xff1a; 我们在Linux中使用fork函数创建子进程时是否会产生一下几个疑惑。 为什么一个变量id具有两个值&#xff1f; 学习C语言后&#xff0c;我们都知道一个函数是不会返回两个值的&#xff0c;那么我们只能猜测是fork函数return了两次。 事实…

(16)Hive——企业调优经验

前言 本篇文章主要整理hive-3.1.2版本的企业调优经验&#xff0c;有误请指出~ 一、性能评估和优化 1.1 Explain查询计划 使用explain命令可以分析查询计划&#xff0c;查看计划中的资源消耗情况&#xff0c;定位潜在的性能问题&#xff0c;并进行相应的优化。 explain执行计划…

基于Python实现的元宵节猜灯谜兑奖软件源码,输入灯谜序号,获取谜面及谜底

基于Python实现的元宵节猜灯谜兑奖软件源码&#xff0c;输入灯谜序号&#xff0c;获取谜面及谜底 核心代码&#xff1a; import sys from time import sleep import xlrd import os import tkintertable_listA "" table_listB ""filename os.getcwd()&…

一个简单的链接脚本,用来将两个以上的.o文件合并在一起,以及如何看机器码的含义

下面是一个简单的lds链接脚本&#xff0c;用来将两个以上的.o文件合并在一起&#xff0c;并且用来指定链接后的代码加载到内存中的起始地址。 SECTIONS 说明这是段的描述脚本 {. 0xD0020010; 加载代码到内存中的起始地址为0xD0020010.text : { 代码段mystart.o mystar…

Java图形化界面编程——五子棋游戏 笔记

2.8.5 五子棋 接下来&#xff0c;我们使用之前学习的绘图技术&#xff0c;做一个五子棋的游戏。 注意&#xff0c;这个代码只实现了五子棋的落子、删除棋子和动画等逻辑实现&#xff0c;并没有把五子棋的游戏逻辑编写完整&#xff0c;比较简单易上手。 图片素材 package…

[嵌入式系统-14]:常见实时嵌入式操作系统比较:RT-Thread、uC/OS-II和FreeRTOS、Linux

目录 一、实时嵌入式操作系统 1.1 概述 1.2 什么“实时” 1.3 什么是硬实时和软实时 1.4 什么是嵌入式 1.5 什么操作系统 二、常见重量级操作系统 三、常见轻量级嵌入式操作系统 3.1 概述 3.2 FreeRTOS 3.3 uC/OS-II 3.4 RT-Thread 3.5 RT-Thread、uC/OS-II、Free…

智能汽车行业产业研究报告:毫米波雷达优势明显,核心壁垒是芯片、天线阵列、波形设计

今天分享的是智能汽车系列深度研究报告&#xff1a;《智能汽车行业产业研究报告&#xff1a;毫米波雷达优势明显&#xff0c;核心壁垒是芯片、天线阵列、波形设计》。 &#xff08;报告出品方&#xff1a;国泰君安证券&#xff09; 报告共计&#xff1a;67页 毫米波雷达被广泛…

浅谈业务场景中缓存的使用

浅谈缓存 一、背景二、缓存分类1.本地缓存2.分布式缓存 三、缓存读写模式1.读请求2.写请求 四、缓存穿透1.缓存空对象2.请求校验3.请求来源限制4.布隆过滤器 五、缓存击穿1.改变过期时间2.串行访问数据库 六、缓存雪崩1.避免集中过期2.提前更新缓存 七、缓存与数据库一致性1.设…

超详细的介绍Python语句

一、 常用命令 在介绍Python语句之前&#xff0c;先介绍一下几个有用的Python命令。 dir(模块名或类名或变量名或表达式名)&#xff1a;获得当前模块、变量对应类型、表达式计算值对应类的属性列表 type&#xff08;变量名或表达式名&#xff09;:获取变量或表达式计算值的对…