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

ตัวเลขและสามเท่าใน Python


สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums เราต้องตรวจสอบว่ามีตัวเลขสองตัวหรือไม่ โดยตัวหนึ่งเป็นสามของอีกตัวหนึ่งหรือไม่

ดังนั้น หากอินพุตเป็น nums =[2, 3, 10, 7, 9] ผลลัพธ์จะเป็น True เนื่องจาก 9 คือค่าสามของ 3

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

  • ผม :=0

  • เรียงลำดับรายการ n

  • เจ :=1

  • ในขณะที่ j <ขนาดของ n ทำ

    • ถ้า 3*n[i] เหมือนกับ n[j] แล้ว

      • คืนค่า True

    • ถ้า 3*n[i]> n[j] แล้ว

      • เจ :=เจ + 1

    • มิฉะนั้น

      • ผม :=ผม + 1

  • คืนค่าเท็จ

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

class Solution:
   def solve(self, n):
      i = 0
      n.sort()
      j = 1
      while (j < len(n)):
         if (3*n[i] == n[j]):
            return True
         if (3*n[i] > n[j]):
            j += 1
         else:
            i += 1
      return False
ob = Solution()
print(ob.solve([2, 3, 10, 7, 9]))

อินพุต

[2, 3, 10, 7, 9]

ผลลัพธ์

True