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

โปรแกรมนับจำนวนจำนวนเต็ม N หลักที่หลักตัวเลขเพิ่มขึ้นอย่างเคร่งครัดใน Python

สมมติว่าเรามีตัวเลข n เราต้องหาจำนวนจำนวนเต็มบวก n หลัก ที่หลักตัวเลขเรียงเพิ่มขึ้นอย่างเคร่งครัด (strictly increasing)

ตัวอย่าง: n = 3 ผลลัพธ์คือ 84 (ตัวเลขคือ 123, 124, ..., 678, 789)

ขั้นตอนการแก้ปัญหา (Combinatorics)

  1. หาก n < 9 ให้คืนค่า C(9, n) (การเลือก n ตัวจาก 1-9)
  2. มิฉะนั้น คืนค่า 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