สมมติว่าเรามีตัวเลข 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