e305: Xor 運算

e305: Xor 運算

題 意:
請 優 化 下 列 函 式
long long sumxor(long long N)

{
       long long sum = 0;
       for (int i = 0; i < N; ++i)
             sum += ((N ^ i) == (N + i));
       return sum;
}

對 於 輸 入 的 N,請 輸 出 sum,也 就 是 函 式 的 回 傳 值。


solve:
XOR 運 算 又 名 "不 進 位 加 法"。也 就 是 說 當 ab 任 何 相 同 一 位 都 是 1 時,就 不 會 相 同,反 之,只 要 ab 任 何 相 同 一 位 都 不 同 時,異 或 跟 加 法 就 會 相 同。
而 在 N 以 下 有 幾 個 整 數 符 合 條 件 只 要 看 N 在 二 進 制 下 有 幾 個 0 就 好 了,答 案 為 2m,其 中 mN2 0 的 個 數。

code:

留言

熱門文章