交换两个变量不要缓存

两个变量:a=3,b=2不用中间变量把它们交换一下。

这个老掉牙的问题,就是什么加加减减了,突然想想了。为什么能那样子做?有意义吗?

 

如果用变量。

tmp=a;

a=b;

b=tmp;

就行了。

 

传统的方法:+-法。

------------- a=3 b=2

a = a+b;    a=5 b=2

b = a-b;     a=5 b=3

a = a-b;     a=2 b=3(实现了交换)

 

其实这么说*/法也行了:

------------- a=3 b=2

a = a*b;    a=6 b=2

b = a/b;     a=6 b=3

a = a/b;     a=2 b=3(实现了交换)

 

这样子什么次方开方也就可以了,把这个在进一步推广的话就有很多很多种方法了,这些方法的规律是什么呢:

三步走:

第一步:a = a和b的共有信息;b的信息不变。【这个时候,a中为a和b的共有的信息,b为本来b的信息】

第二步:b = 由共有信息和(本b)信息 得到 (本a);【这个时候,a中为a和b的共有的信息,b为本来a的信息】

第二步:a = 由共有信息和(本a)信息 得到 (本b);【这个时候,a中为本来b的信息,b为本来a的信息】

 

不知道这个问题有没有什么实际的意义,只要按照这个方法推广一下,就有了无穷中变种了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值