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)
- nếu mod tạm thời 10 giống với i, thì
- 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