[プログラマー/python]レベル2の次の大きな数字



https://programmers.co.kr/learn/courses/30/lessons/12911

問題を解く


10進数から2進数に変換する方法は次のとおりです.
value=60
b=bin(value)
print(b) # 0b111100

or

b=format(value, "b")
print(b) # 111100
与えられた数字nをバイナリ数に変換して1の個数を求め、nを増やし、1の個数が同じ数字を見つければよい.

ソースコード

def solution(n):
    value=format(n,"b")
    cnt=value.count("1")

    while True:
        n+=1
        value2=format(n,"b")
        cnt2=value2.count("1")
        if cnt==cnt2:
            return n