Đây là câu hỏi đầu tiên của tôi, vì vậy tôi hy vọng nó diễn ra tốt đẹp.
Lý lịch:
Đó không phải là những dòng sông mà bạn có thể nghĩ đến. Câu hỏi xoay quanh khái niệm sông kỹ thuật số. Một dòng sông kỹ thuật số là một chuỗi các số mà số sau đây n
là n
cộng tổng các chữ số của nó.
Giải trình:
12345 được theo sau bởi 12360 kể từ 1 + 2 + 3 + 4 + 5 = 15 và do đó 12345 + 15 cho 12360. tương tự 145 được theo sau bởi 155. Nếu số đầu tiên của một dòng sông kỹ thuật số, M
chúng ta sẽ gọi nó là sông M
.
Ví dụ: Sông 480 là dãy bắt đầu {480,492,506,519 ....} và sông 483 là dãy bắt đầu {483,498,519, ....}. Các dòng sông và sông thông thường có thể gặp nhau, và điều tương tự cũng đúng với các dòng sông kỹ thuật số. Điều này xảy ra khi hai con sông kỹ thuật số chia sẻ một số giá trị giống nhau.
Thí dụ:
Sông 480 gặp sông 483 ở 519. Sông 480 gặp sông 507 ở 507 và không bao giờ gặp sông 480. Mỗi dòng sông kỹ thuật số cuối cùng sẽ gặp sông 1, sông 3 hoặc sông 9.
Viết chương trình có thể xác định cho một số nguyên cho trước n
giá trị nơi sông n
lần đầu tiên gặp một trong ba con sông này.
Đầu vào
Đầu vào có thể chứa nhiều trường hợp thử nghiệm. Mỗi trường hợp thử nghiệm chiếm một dòng riêng và chứa một số nguyên n
( 1 <= n <= 16384
). Một trường hợp thử nghiệm có giá trị 0
cho n
chấm dứt đầu vào và kiểm tra trường hợp này phải không được xử lý.
Đầu ra
Đối với mỗi trường hợp thử nghiệm trong đầu ra đầu tiên, số trường hợp thử nghiệm (bắt đầu từ 1) như được hiển thị trong đầu ra mẫu. Sau đó, trên một dòng đầu ra riêng biệt, dòng "đầu tiên gặp sông x tại y". Ở đây y là giá trị thấp nhất trong đó sông n
lần đầu tiên gặp sông x
(x = 1 hoặc 3 hoặc 9). Nếu sông n
gặp sông x
ở y
nhiều hơn một giá trị x
, xuất giá trị thấp nhất. In một dòng trống giữa hai trường hợp thử nghiệm liên tiếp.
Trường hợp thử nghiệm
Đầu vào:
86
12345
0
Đầu ra:
Case #1
first meets river 1 at 101
Case #2
first meets river 3 at 12423
Ghi điểm:
Thuật toán nhanh nhất chiến thắng. Trong trường hợp cà vạt. Người nào có mã ngắn hơn sẽ thắng.
Cảm ơn mbomb007 đã chỉ ra lỗi của tôi.
ps: Tôi muốn có giải pháp nhanh nhất chứ không phải giải pháp nhỏ nhất. Tôi cũng có một giải pháp của tôi là chậm. Đối với cái nhìn ở đây .
Ghi chú:
Tôi sẽ sử dụng điều này để kiểm tra mã. Và kiểm tra hiệu suất.
M
chúng ta sẽ gọi nó là dòng sôngM
" không có nghĩa vì hai lý do: thứ nhất, nếu một dòng sông là một dãy số vô hạn thì nó không có chữ số cuối; và thứ hai, trong đoạn sôngM
tiếp theo có nghĩa là dòng sông bắt đầu từ số M
.