Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬에서 재정렬된 2의 거듭제곱을 찾는 프로그램

<시간/>

양의 정수 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