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

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

问题:

解答:

cpp 复制代码
#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;
}

运行结果:

注意:

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

记下来吧...

相关推荐
lingran__1 分钟前
C++_stack和queue和priority_queue(容器适配器)
开发语言·c++
小保CPP6 分钟前
OpenCV C++基于极值区域滤波算法的场景文本检测(OCR)
c++·人工智能·opencv·算法·计算机视觉·ocr
lichuangcsdn9 分钟前
【Spring AI 学习(三)】实现简单的对话
java·人工智能·学习·spring·spring ai
星恒随风12 分钟前
C++ 多态底层原理:静态绑定、动态绑定、虚函数表与工程实践
开发语言·c++·笔记·学习
白色冰激凌25 分钟前
[SECS/GEM研究] (四)HSMS 用TCP取代串口
网络·c++·网络协议·secs/gem
崖边看雾1 小时前
Python学习——函数
开发语言·windows·python·学习·pycharm
ShineWinsu1 小时前
对于Linux:http的解析
linux·网络·c++·网络协议·http·请求·响应
-拟墨画扇-1 小时前
神经网络 | ⑬ 超参数验证:找到最佳学习超参数
深度学习·神经网络·学习
choumin11 小时前
创建型模式——工厂方法模式
c++·设计模式·工厂方法模式·创建型模式
云小逸11 小时前
【SVN 详细使用指南:从入门到团队协作】
c++·svn