[プログラマー]次の大きな数字
2467 ワード
問題の概要
私はあなたに数字をあげます.
条件この数字より大きいです.
条件2進数に変換した場合、1の個数に等しい数字のうち最小の数.
彼を見つけた
アイデア
n+1から線形探索を行い,条件に合致することを確認する.
まず,このコードは完全にバイナリ数に変換するのではなく,バイナリ数を逆求める方法を用いたが,1の個数しか計算しなかった.
すくい取る
bin(10進数)、oct()、hex()などの組み込み関数もあります.
format()内蔵関数format(string,「#b」)でもできますが、除算でバイナリ数を実現しなければなりません...?
コード#コード#
def cvt_2(n):
ctr = 0
while n>0:
if n%2 ==1:
ctr+=1
n=n//2
return ctr
def solution(n):
n_1 = cvt_2(n)
t = n+1
while True:
ct = cvt_2(t)
if(ct == n_1):
break
t +=1
return t
Reference
この問題について([プログラマー]次の大きな数字), 我々は、より多くの情報をここで見つけました https://velog.io/@coding3392/프로그래머스-다음-큰-숫자テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol