Thử thách này là một sự tôn vinh đối với người dùng Dennis của PPCG vì đã chiến thắng phần của Kẻ cướp trong Bài kiểm tra ngôn ngữ lập trình .
Nhìn vào trang hồ sơ PPCG của Dennis, chúng ta có thể thấy một số nội dung khá ấn tượng:
Anh ta hiện có hơn sáu mươi tám ngàn danh tiếng, khiến anh ta đứng thứ hai về tổng thể , vượt qua vị trí thứ ba gần ba mươi ngàn. Gần đây anh ấy đã thắng cuộc bầu cử của chúng tôi cho một người điều hành mới và có một viên kim cương mới sáng bóng bên cạnh tên của anh ấy. Nhưng cá nhân tôi nghĩ phần thú vị nhất về Dennis là số ID người dùng PPCG của anh ấy: 12012.
Thoạt nhìn 12012
gần trông giống như một palindrome , một số mà đọc giống nhau khi đảo ngược, nhưng đó là một chút đi. Nó có thể trở thành bảng màu 21012
nếu chúng ta trao đổi vị trí của vị trí đầu tiên 1
và 2
, và nó có thể trở thành bảng màu 12021
nếu chúng ta trao đổi vị trí cuối cùng 1
và 2
. Ngoài ra, theo quy ước rằng các số 0 đứng đầu trong một số không được viết, hoán đổi đầu tiên 1
và 0
kết quả trong 02112
hoặc đúng hơn 2112
là một palindrom khác.
Chúng ta hãy định nghĩa một số Dennis là một số nguyên dương không phải là chính nó nhưng có thể được tạo thành một bảng màu bằng cách hoán đổi vị trí của ít nhất một cặp của hai chữ số bất kỳ. Thứ tự của một số Dennis là số lượng các cặp chữ số riêng biệt có thể được hoán đổi để tạo thành một bảng màu (không nhất thiết phải khác biệt).
Vì vậy, theo thứ tự 12012
là 3 từ 3 cặp khác biệt của các chữ số của nó ( 12012
, , ) có thể được hoán đổi xung quanh để tạo ra palindromes. xảy ra là số nhỏ nhất 3 số Dennis.12012
12012
12012
10
là số Dennis nhỏ nhất và có thứ tự 1 vì chuyển đổi xung quanh 1
và 0
cho 01
aka 1
đó là một bảng màu.
Các số 0 đứng đầu tưởng tượng của một số không được tính là các chữ số có thể chuyển đổi. Ví dụ, thay đổi 8908
đến 08908
và trao đổi hai chữ số đầu tiên để có được những palindrome 80908
không hợp lệ. 8908
không phải là số Dennis.
Các số không phải Dennis có thể được cho là có số 0.
Thử thách
Viết chương trình hoặc hàm lấy số nguyên dương N và in hoặc trả về số Dennis nhỏ nhất thứ N cùng với thứ tự của nó theo một số định dạng hợp lý như 12012 3
hoặc (12012, 3)
.
Ví dụ, 12012
là số Dennis thứ 774 vì vậy nếu 774
là đầu vào cho chương trình của bạn, thì đầu ra phải giống như vậy 12012 3
. (Thật kỳ lạ, 774 là một số Dennis khác.)
Mã ngắn nhất tính bằng byte thắng.
Dưới đây là 20 số Dennis đầu tiên và đơn đặt hàng của họ để tham khảo:
N Dennis Order
1 10 1
2 20 1
3 30 1
4 40 1
5 50 1
6 60 1
7 70 1
8 80 1
9 90 1
10 100 1
11 110 2
12 112 1
13 113 1
14 114 1
15 115 1
16 116 1
17 117 1
18 118 1
19 119 1
20 122 1