아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

판자

면접 대비

시간 제한1초메모리 제한128 MB

요약
K 이상인 가장 작은 2의 거듭제곱 판자에서 시작해 일부 조각의 합이 K가 되도록 하는 최소 절단 횟수를 구합니다.
난이도

보통10점 중 5점

유형
비트 연산, 그리디
정답자
아직 제출이 없습니다

문제

피트 선장은 울타리를 만들려고 합니다. 그러려면 길이의 합이 정확히 KK가 되는 판자들이 필요합니다.

선장이 쓸 수 있는 것은 다음 두 가지뿐입니다.

  • 판자 하나를 정확히 절반으로 잘라 두 개로 만드는 기계
  • 길이가 2의 거듭제곱인 판자 한 개. 지수는 선장이 원하는 대로 고를 수 있으며, 목수 친구가 가져다줍니다.

한 번의 절단은 판자 하나를 길이가 절반인 판자 두 개로 만듭니다. 이 2의 거듭제곱 길이 판자 하나에서 시작할 때, 잘라서 얻은 판자들 중 일부의 길이 합이 정확히 KK가 되도록 만들기 위해 필요한 최소 절단 횟수를 구하세요.

입력

첫 번째 줄에 테스트 케이스의 개수 ZZ (1≤Z≤101 \le Z \le 10)가 주어집니다.

이어지는 ZZ개의 줄에는 각각 정수 KK (1≤K≤10121 \le K \le 10^{12})가 하나씩 주어집니다. 해당 테스트 케이스에서 피트 선장이 필요로 하는 판자 길이의 총합입니다.

출력

각 테스트 케이스마다 한 줄에 정수 하나를 출력합니다. 피트 선장이 해야 하는 최소 절단 횟수입니다.

예제1

  1. 예제 1

    입력
    2
    3
    4
    
    예상 출력
    2
    0