Logo
(追記) (追記ここまで)

12457번 - ビット数 (Small) 다국어

시간 제한메모리 제한제출정답맞힌 사람정답 비율
5 초 512 MB85655582.090%

문제

f(x) を 「x を 2進数表記した時の "1" の個数を返す関数」と定義します。 例えば、5 は 1012 と 2 進数表記されるので、f(5) = 2 です。

正の整数 N が与えられるので、 a + b = N を満たす 0 以上の整数 a, b の組の中で f(a) + f(b) が最大になるものを求め、その時の f(a) + f(b) の値を出力してください。

입력

最初の行はテストケースの個数 T を表す正の整数です。 各テストケースは1行の文字列で表現され、それぞれの行には N を表す正の整数が1つだけ含まれています。

制約

  • 1 ≤ T ≤ 1000
  • N ≤ 10000

출력

各テストケースごとに、

Case #X: P

という内容を1行出力してください。ここで X は 1 から始まるテストケース番号、P は f(a) + f(b) の最大値です。

제한

예제 입력 1

4
1
4
31
1125899906842624

예제 출력 1

Case #1: 1
Case #2: 3
Case #3: 5
Case #4: 51

힌트

출처

Contest > Google > Google's Coding Competitions > Google Code Jam Japan 2011 > Code Jam Japan 2011 予選 C1번

채점 및 기타 정보

  • 예제는 채점하지 않는다.
(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /