落絮飞雁的个人网站
不需要辅助内存交换两变量
不需要辅助内存交换两变量

刚刚在林乐博客看到的,拿过来备用

用到的异或的方法:

#include "stdio.h"
int main()
{
    int a,b;
    while(scanf("%d %d",&a,&b)!=EOF)
    {
        a^=b^=a=a^b;
        printf("%d %dn",a,b);
    }
    return 0;
}

其实a^=b^=a=a^b;这句就相当于是

a=a^b;
b=a^b;
a=a^b;

写法.

除此之外还有加减法,代码:

a = a+b;
b = a-b;
a = a-b;

也可以方便的实现交换两数.

原文标题:不需要辅助内存交换两变量|落絮飞雁的个人网站
授权协议:创作共用 署名-非商业性使用 2.5 中国大陆
除注明外,本站文章均为原创;转载时请保留上述链接。
没有标签
首页      ACM      ACM其他      不需要辅助内存交换两变量

发表评论

textsms
account_circle
email

落絮飞雁的个人网站

不需要辅助内存交换两变量
刚刚在林乐博客看到的,拿过来备用 用到的异或的方法: #include "stdio.h" int main() { int a,b; while(scanf("%d %d",&a,&b)!=EOF) { a^=b^=a=a^b; prin…
扫描二维码继续阅读
2014-03-24