当前位置: 首页 > article >正文

【刷点笔试面试题试试水】不使用任何中间变量如何将a、b的值进行交换?

大家好,这里是国中之林!
❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看←

问题:

这里是引用

解答:

#include <iostream>
using namespace std;

void swap1(int& a, int& b)
{
	int temp = a;
	a = b;
	b = temp;
}

void swap2(int& a, int& b)
{
	a = a + b;
	b = a - b;
	a = a - b;
}

void swap3(int& a, int& b)
{
	a = a ^ b;
	b = a ^ b;
	a = a ^ b;
}

int main()
{
	int a1 = 1, b1 = 2;
	int a2 = 3, b2 = 4;
	int a3 = 5, b3 = 6;
	int a = 2147483647, b = 1;

	swap1(a1, b1);
	swap2(a2, b2);
	swap3(a3, b3);

	printf("after swap. . .\n");
	printf("a1 = %d,b1 = %d\n", a1, b1);
	printf("a2 = %d,b2 = %d\n", a2,b2); 
	printf("a3 = %d,b3 = %d\n", a3, b3); 
	
	swap2(a,b);
	printf("a = %d,b = %d\n", a, b);


	return 0;
}

运行结果:
在这里插入图片描述

注意:

  • 方法二可能会溢出,所以方式三是最佳解.

记下来吧…
在这里插入图片描述


http://www.kler.cn/a/328744.html

相关文章:

  • 一文了解性能优化的方法
  • 【编译原理实验二】——自动机实验:NFA转DFA并最小化
  • [STM32 - 野火] - - - 固件库学习笔记 - - -十三.高级定时器
  • Acwing94递归实现排列型枚举
  • USB 3.1-GL3510-52芯片原理图设计
  • AI大模型开发原理篇-2:语言模型雏形之词袋模型
  • docker如何查看容器的ip
  • 文件的管理
  • Qt6 中相对于 Qt5 的新增特性及亮点
  • 部署(swoft+swoole)网站
  • 雅达利“美洲虎“游戏机在iPhone模拟应用程序中重生
  • Maven和pnpm依赖迁移
  • 关系型数据库和非关系型数据库的区别
  • 闯关训练一:Linux基础
  • 网络安全 DVWA通关指南 DVWA Weak Session IDs(弱会话)
  • 【高分系列卫星简介——高分六号卫星(GF-6)】
  • Windows应急响应-PcShare远控木马
  • java中的强软弱虚
  • SQL Server—表格详解
  • C++ 游戏开发:奠定高性能游戏的基础
  • 【MySQL】-- 数据库基础
  • 微信小程序map组件自定义气泡真机不显示
  • 通信工程学习:什么是MAC媒体接入控制
  • 在C#中使用JSON
  • 链表的实现(go语言)
  • 【AIGC】ChatGPT提示词解析:如何打造个人IP、CSDN爆款技术文案与高效教案设计