SyntaxHighlighter

StackEdit CSS

2012年12月19日水曜日

テンポラリを使わずにスワップする

学校でやった勉強会でこんなのがあった。

Q.一時変数を使わずに、値を入れ替える関数を書いてください。

これはどっかでみて、xorを使うとだけ覚えていた。(a, bは変数全体 A, Bはビットが立っていることを示す)

ソース

#include<iostream>
using namespace std;

int main(){
    int a, b;
    cin >> a >> b;
    
    b ^= a;
    a ^= b;
    b ^= a;
    
    cout << a << ' ' << b << endl;
    return 0;
}



xorを知らなかったら、できなかっただろうなぁ

0 件のコメント:

コメントを投稿