はまやんはまやんはまやん

hamayanhamayan's blog

Counting Even [yukicoder No.589]

https://yukicoder.me/problems/no/589

解法

https://yukicoder.me/submissions/213978

注意!!以下、手抜き回答です。
 
OEISという数列辞典があるので、愚直に計算してみて、結果を入れてみると出て来る。
https://oeis.org/A048967
これを元に実装すると答え。
 
下の回答にはジャッジに使われる部分しか書いてないが、上のリンクの実装では、愚直解の生成もついている。

ll N;
//---------------------------------------------------------------------------------------------------
ll f(ll a) {
    if (a == 0 or a == 1) return 0;

    if (a % 2 == 0) return f(a / 2) + a / 2;
    return 2 * f(a / 2);
}
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> N;
    cout << f(N) << endl;
}