Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมค้นหา Reordered Power of 2 ใน Python


สมมติว่าเรามีจำนวนเต็มบวก N เราจะเรียงลำดับตัวเลขใหม่ตามลำดับใดๆ (รวมถึงลำดับเดิม) โดยที่หลักนำหน้าจะไม่เป็นศูนย์ เราต้องตรวจสอบว่าเราทำได้ในลักษณะที่ผลลัพธ์เป็นเลขยกกำลัง 2

ดังนั้นหากอินพุตเป็น N =812 เอาต์พุตจะเป็น True

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • ผม:=1

  • ในขณะที่ i<=1000000000 ทำ

    • s:=ฉันเป็นสตริง

    • s:=จัดเรียงอักขระของ s

    • t:=n เป็นสตริง

    • t:=จัดเรียงอักขระของ t

    • ถ้า s เหมือนกับ t แล้ว

      • คืนค่า True

    • 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