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 運 算 又 名 "不 進 位 加 法"。也 就 是 說 當 a 及 b 任 何 相 同 一 位 都 是 1 時,就 不 會 相 同,反 之,只 要 a 及 b 任 何 相 同 一 位 都 不 同 時,異 或 跟 加 法 就 會 相 同。
而 在 N 以 下 有 幾 個 整 數 符 合 條 件 只 要 看 N 在 二 進 制 下 有 幾 個 0 就 好 了,答 案 為 2m,其 中 m 為 N2 0 的 個 數。
code:
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 運 算 又 名 "不 進 位 加 法"。也 就 是 說 當 a 及 b 任 何 相 同 一 位 都 是 1 時,就 不 會 相 同,反 之,只 要 a 及 b 任 何 相 同 一 位 都 不 同 時,異 或 跟 加 法 就 會 相 同。
而 在 N 以 下 有 幾 個 整 數 符 合 條 件 只 要 看 N 在 二 進 制 下 有 幾 個 0 就 好 了,答 案 為 2m,其 中 m 為 N2 0 的 個 數。
code:
留言
張貼留言