내맘대로IT/Python

백준 3460 파이썬 이진수

맛집여행 2023. 5. 17. 23:13
728x90
300x250

#방법1

T = int(input()) #테스트케이스 수



for _ in range(T): #tc 수만큼 for 문
    n= int(input()) #인지수 변경 대상
    cnt = 0 # 자리수 초기값
    while n>0: #n이 나머지 1일떄까지 while문
        if n%2 == 1: # 나머지가 1이면 print(13일 경우 1101)
            print(cnt,end =' ')
        n= n//2 #2로 나눈 몫을 n에 다시 대입
        cnt+=1 #자리수 한칸씩 앞으로 이동
    print()

#방법2


T = int(input())



for _ in range(T):
    bnum = list(reversed(bin(int(input()))[2:])) #0b1011형태로 출력 되기 때문에 3번째값부터

    for i in range(len(bnum)): # ['1','0','1','1']
        if bnum[i]=='1': #str형
            print(i, end = ' ')
    print()
728x90