Paizaの論理演算シリーズ、今回は「XNOR」演算!
🎯 問題とステップ:
0 または 1 の整数 A, B が与えられる。A XNOR B の結果を出力せよ。
要は、AとBが同じなら1、違ったら0を出力する。
✅コード例
const [A, B] = require('fs').readFileSync('/dev/stdin', 'utf8').trim().split(' ').map(Number);
// 方法1:AとBが等しいかで判断
console.log(A === B ? 1 : 0);
//方法2:ビット演算
const xnor = Number(!(A ^ B)); // XORの否定がXNOR!
console.log(xnor);
どっちも「AとBが同じなら1」を表現してるだけ。
でも 個人的には ===
のほうが分かりやすくて好き。
🔍 まとめ・補足ポイント
-
!(A ^ B)
だけだと true/false型になる →Number()
で数値に変換! -
^
はビットXOR → 違うときだけ1
になる - XNORはその逆:同じときだけ
1
→!(A ^ B)
で表現可能