Chúng ta hãy định nghĩa một số tự chứa là một số nguyên dương, có các chữ số xuất hiện theo các chiều dài chỉ bằng chính chúng. Nói cách khác, bất kỳ chữ số thập phân d (không bao gồm 0 ) chỉ xảy ra trong các lần chạy có độ dài chính xác d .
Bài tập
Bạn có thể chọn bất kỳ phương pháp nào trong ba phương pháp được liệt kê dưới đây:
- Cho một số nguyên n , xuất ra số tự chứa thứ n (0 hoặc 1 được lập chỉ mục).
- Cho một số nguyên n , xuất ra n số tự chứa đầu tiên .
- In trình tự vô thời hạn.
Ví dụ
133322 là một số tự chứa vì 3 xuất hiện trong một lần chạy ba 3 , 1 là đơn và 2 xảy ra trong một lần chạy 2 2 giây.
Mặt khác, 35553355 thì không, bởi vì, mặc dù 5 và 3 xảy ra lần lượt năm và ba lần, chúng không tạo thành các chữ số liền kề.
44422 không khép kín, vì 4 chỉ xảy ra ba lần.
12222333 cũng không, bởi vì 2 xuất hiện trong một loạt bốn 2 giây và nó không thể được coi là hai lần chạy riêng biệt của hai 2 giây.
Không có gì đáng ngạc nhiên, đây là OEIS A140057 , và một vài thuật ngữ đầu tiên của nó là:
1, 22, 122, 221, 333, 1221, 1333, 3331, 4444, 13331, 14444, 22122, 22333, 33322, 44441, 55555, 122122, 122333, 133322, 144441, 155555
Bạn có thể nhận đầu vào và cung cấp đầu ra thông qua bất kỳ phương thức tiêu chuẩn nào , trong bất kỳ ngôn ngữ lập trình nào , trong khi lưu ý rằng các lỗ hổng này bị cấm theo mặc định. Đây là mã golf, vì vậy mã ngắn nhất tính bằng byte (bằng mọi ngôn ngữ) sẽ thắng.
i
trở thành dài ? Nó có thể là cần thiết để sử dụngstr
(mặc dù tôi không bao giờ thực sự chắc chắn về những điều này).