5

上記の質問は次のとおりです。2 つの整数 x1 と x2 が与えられた場合、if キーワードを使用せずに、 x1 と x2 の両方とは異なる別の整数 x3 を見つけます。

私の解決策は、整数のビットごとの操作に加えて、2 つのビットが等しくない場合にのみ、2 つのビット間の XOR が 1 を返すという事実に基づいています。

この解決策は有効ですか? より良い解決策を見つけることができますか? もちろん、実行時間の考慮事項とメモリ消費は可能な限り優れている必要があります。

注: 三項演算と比較 (つまり - != 、 == ) も許可されていません

前もって感謝します、

男。

私の解決策:

int foo(int x1,int x2)
{
    // xor
    int x3 = x1 ^ x2;

    // another xor 
    x3 = x3 ^ x2;

    // not
    x3 = ~x3;

    return x3;  

}
4

2 に答える 2