양의 정수 N이 있다고 가정하고 선행 숫자가 0이 아닌 임의의 순서(원래 순서 포함)로 숫자를 재정렬합니다. 결과 숫자가 2의 거듭제곱이 되도록 이 작업을 수행할 수 있는지 확인해야 합니다.
따라서 입력이 N =812와 같으면 출력은 True
가 됩니다.이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
i:=1
-
내가<=1000000000인 동안
-
s:=i를 문자열로
-
s:=s의 문자 정렬
-
t:=n을 문자열로
-
t:=t의 문자 정렬
-
s가 t와 같으면
-
참을 반환
-
-
i:=i*2
-
-
거짓을 반환
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
def solve(n): i=1 while i<=1000000000: s=str(i) s=''.join(sorted(s)) t=str(n) t=''.join(sorted(t)) if s==t: return True i=i*2 return False N = 812 print(solve(N))
입력
812
출력
True