Computer >> Máy Tính >  >> Lập trình >> Python

Kiểm tra xem tần suất của mỗi chữ số có nhỏ hơn chữ số trong Python hay không

Giả sử chúng ta có một số n, chúng ta phải kiểm tra xem sự xuất hiện của mỗi chữ số n nhỏ hơn hoặc bằng chữ số của chính nó.

Vì vậy, nếu đầu vào là n =5162569, thì đầu ra sẽ là Đúng vì các chữ số và tần số là (5, 2), (1, 1), (6, 2) và (9, 1), cho tất cả tần số nhỏ hoặc bằng giá trị chữ số.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • đối với tôi trong phạm vi từ 0 đến 9, hãy thực hiện
    • temp:=n, cnt:=0
    • trong khi nhiệt độ khác 0, hãy thực hiện
      • nếu mod tạm thời 10 giống với i, thì
        • cnt:=cnt + 1
      • nếu cnt> i, thì
        • trả về Sai
      • temp:=thương số của (temp / 10)
  • trả về True

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

def solve(n):
   for i in range(10):
      temp = n
      cnt = 0
      while temp:
         if temp % 10 == i:
            cnt += 1
         if cnt > i:
            return False
         temp //= 10
   return True
s = 5162569
print(solve(s))

Đầu vào

5162569

Đầu ra

True