Giả sử chúng ta có một số n, chúng ta phải tìm n số đầu tiên được sắp xếp theo trình tự từ vựng.
Vì vậy, nếu đầu vào là n =15, thì đầu ra sẽ là [1, 10, 11, 12, 13, 14, 15, 2, 3, 4, 5, 6, 7, 8, 9]
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau:
- số lượng:=1
- ans:=một danh sách có số phần tử đơn lẻ
- while kích thước của ans
- count:=count * 10
- while count> n, do
- count:=thương số của số đếm / 10
- count:=count + 1
- trong khi số đếm mod 10 giống với 0, hãy thực hiện
- count:=thương số của số đếm / 10
- chèn số vào cuối ans
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn:
Mã mẫu
class Solution: def solve(self, n): count = 1 ans = [count] while len(ans) < n: count *= 10 while count > n: count = count // 10 count += 1 while count % 10 == 0: count = count // 10 ans.append(count) return ans ob = Solution() n = 15 print(ob.solve(n))
Đầu vào
15
Đầu ra
[1, 10, 11, 12, 13, 14, 15, 2, 3, 4, 5, 6, 7, 8, 9]