結果
| 問題 | No.589 Counting Even | 
| コンテスト | |
| ユーザー |  | 
| 提出日時 | 2017-11-04 13:48:00 | 
| 言語 | Java (openjdk 23) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 138 ms / 2,000 ms | 
| コード長 | 740 bytes | 
| コンパイル時間 | 4,039 ms | 
| コンパイル使用メモリ | 74,692 KB | 
| 実行使用メモリ | 54,436 KB | 
| 最終ジャッジ日時 | 2024-11-23 17:53:40 | 
| 合計ジャッジ時間 | 8,519 ms | 
| ジャッジサーバーID (参考情報) | judge1 / judge5 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 29 | 
ソースコード
import java.io.*;
import java.util.*;
public class Main_yukicoder589_1 {
	private static Scanner sc;
	private static Printer pr;
	private static void solve() {
		long n = sc.nextLong();
		pr.println(n + 1 - cntOdd(n));
	}
	private static long cntOdd(long n) {
		if (n == 0) {
			return 1;
		} else if (n == 1) {
			return 2;
		}
		long tmp = 2;
		while (n >= tmp * 2) {
			tmp *= 2;
		}
		return 2 * cntOdd(n - tmp);
	}
	// ---------------------------------------------------
	public static void main(String[] args) {
		sc = new Scanner(System.in);
		pr = new Printer(System.out);
		solve();
		pr.close();
		sc.close();
	}
	private static class Printer extends PrintWriter {
		Printer(PrintStream out) {
			super(out);
		}
	}
}
            
            
            
        