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

ตรวจสอบว่า N หารด้วยตัวเลขที่ประกอบด้วยตัวเลขจากชุด {A, B} ใน Python ได้หรือไม่


สมมติว่าเรามีตัวเลข n เรามีอีกสองตัวคือ a และ b เราต้องตรวจสอบว่าเราสามารถสร้างตัวเลขโดยใช้ a และ b ที่หาร n ได้หรือไม่

ดังนั้น หากอินพุตเป็น n =115, a =3, b =2 ผลลัพธ์จะเป็น True เนื่องจาก 115 หารด้วย 23 ลงตัว ซึ่งประกอบไปด้วย 2 และ 3

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

  • กำหนดฟังก์ชัน util() นี้จะใช้เวลาชั่วคราว, a, b, n
  • ถ้าอุณหภูมิ> n แล้ว
    • คืนค่าเท็จ
  • ถ้า n หารด้วย temp ลงตัวแล้ว

    • คืนค่า True
  • คืนค่า จริง เมื่ออย่างน้อยหนึ่ง util(temp * 10 + a, a, b, n) หรือ util(temp * 10 + b, a, b, n) เป็นจริง มิฉะนั้น เท็จ
  • จากวิธีหลักคืนค่า จริง เมื่ออย่างน้อย util(a, a, b, n) หรือ util(b, a, b, n) เป็นจริง มิฉะนั้น เท็จ

ตัวอย่าง

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

def util(temp, a, b, n):
   if temp > n:
      return False
   if n % temp == 0:
      return True
   return util(temp * 10 + a, a, b, n) or util(temp * 10 + b, a, b, n)
def solve(n, a, b):
   return util(a, a, b, n) or util(b, a, b, n)
n = 115
a = 3
b = 2
print(solve(n, a, b))

อินพุต

115, 2, 3

ผลลัพธ์

True