สมมติว่าเรามีตัวเลข n เราต้องหาจำนวนจำนวนเต็มบวก n หลัก ที่หลักตัวเลขเรียงเพิ่มขึ้นอย่างเคร่งครัด (strictly increasing)
ตัวอย่าง: n = 3 ผลลัพธ์คือ 84 (ตัวเลขคือ 123, 124, ..., 678, 789)
ขั้นตอนการแก้ปัญหา (Combinatorics)
- หาก
n < 9ให้คืนค่าC(9, n)(การเลือก n ตัวจาก 1-9) - มิฉะนั้น คืนค่า 0 (เพราะไม่มีตัวเลข 10 หลักที่เพิ่มขึ้นได้จาก 1-9)
เหตุผล: ตัวเลขที่หลักเพิ่มขึ้นอย่างเคร่งครัด ต้องเลือก n ตัวจาก {1,2,...,9} และเรียงจากน้อยไปมาก มีเพียง 1 วิธีต่อการเลือก
ตัวอย่างโค้ด Python
from math import factorial as f
class Solution:
def solve(self, n):
if n < 9:
return f(9) // f(n) // f(9 - n)
else:
return 0
ob = Solution()
print(ob.solve(3)) # Output: 84
อินพุต
3
เอาต์พุต
84