Tôi nghĩ rằng hầu hết mọi người ở đây đều biết màn hình 7 đoạn cho các chữ số là gì:
_ _ _ _ _ _ _ _
| | | _| _| |_| |_ |_ | |_| |_|
|_| | |_ _| | _| |_| | |_| _|
Chúng ta có thể định nghĩa chênh lệch 7 đoạn (7SD) giữa hai chữ số là số phân đoạn cần được chuyển đổi để chuyển từ loại này sang số khác. Ví dụ: 7SD giữa 1
và 2
là 5 (ba phân đoạn ngang và hai phân đoạn dọc thấp hơn cần được bật) và 7SD giữa 6 và 8 là 1 .
Hơn nữa, chúng ta có thể định nghĩa 7SD giữa hai số là tổng của 7SD giữa các chữ số tương ứng của chúng. Nếu một số dài hơn số kia, chúng tôi giả sử chúng được căn phải và thêm số phân đoạn cần thiết để hiển thị các chữ số có ý nghĩa nhất bổ sung của số lớn hơn. Ví dụ, xem xét 7SD giữa 12345
và 549
:
x: 1 2 3 4 5
y: 5 4 9
7SD: 2+5+2+0+1 = 10
Nhiệm vụ của bạn là tính toán 7SD giữa n và n + 1 , được đưa ra n .
Để thuận tiện, đây là bảng đầy đủ 7SD giữa các chữ số riêng lẻ. Hàng _
đại diện cho một vị trí trống.
_ 0 1 2 3 4 5 6 7 8 9
_ 0 6 2 5 5 4 5 6 3 7 6
0 6 0 4 3 3 4 3 2 3 1 2
1 2 4 0 5 3 2 5 6 1 5 4
2 5 3 5 0 2 5 4 3 4 2 3
3 5 3 3 2 0 3 2 3 2 2 1
4 4 4 2 5 3 0 3 4 3 3 2
5 5 3 5 4 2 3 0 1 4 2 1
6 6 2 6 3 3 4 1 0 5 1 2
7 3 3 1 4 2 3 4 5 0 4 3
8 7 1 5 2 2 3 2 1 4 0 1
9 6 2 4 3 1 2 1 2 3 1 0
Đầu vào
- Đầu vào là một số nguyên dương duy nhất
n
. - Bạn có thể viết chương trình hoặc hàm, lấy đầu vào qua STDIN (hoặc thay thế gần nhất), đối số dòng lệnh hoặc đối số hàm.
- Bạn có thể giả sử rằng đầu vào ít nhất là một số nhỏ hơn số lớn nhất có thể được biểu thị bằng loại số nguyên tiêu chuẩn của ngôn ngữ của bạn, miễn là loại đó hỗ trợ ít nhất các giá trị lên đến và bao gồm 127.
Đầu ra
- Bạn nên in một số nguyên duy nhất, 7SD giữa
n
vàn+1
. - Bạn có thể xuất thông qua STDOUT (hoặc thay thế gần nhất), đối số trả về hàm hoặc đối số hàm (out).
Chấm điểm
Áp dụng quy tắc golf tiêu chuẩn , mã ngắn nhất (tính bằng byte).
Các trường hợp thử nghiệm
Đối với một số lý do mơ hồ, trình tự này chưa có trong OEIS, mặc dù có trình tự liên quan chặt chẽ A123587 . Dưới đây là 100 số đầu tiên (bắt đầu bằng n = 1, 2, 3, ...
):
5, 2, 3, 3, 1, 5, 4, 1, 4, 4, 5, 2, 3, 3, 1, 5, 4, 1, 7, 4, 5, 2, 3, 3, 1,
5, 4, 1, 4, 4, 5, 2, 3, 3, 1, 5, 4, 1, 5, 4, 5, 2, 3, 3, 1, 5, 4, 1, 5, 4,
5, 2, 3, 3, 1, 5, 4, 1, 3, 4, 5, 2, 3, 3, 1, 5, 4, 1, 7, 4, 5, 2, 3, 3, 1,
5, 4, 1, 6, 4, 5, 2, 3, 3, 1, 5, 4, 1, 3, 4, 5, 2, 3, 3, 1, 5, 4, 1, 6, 4
Đầu vào đầu tiên mà 7SD lớn hơn 9 1999
sẽ mang lại 11. Dưới đây là một số ví dụ lớn hơn khác:
n 7SD
1999 11
12345 1
999999 14
5699999 15
8765210248 1