trang chủ / đề bài / seqdigit

Chữ số trong dãy khối

Đề bài

Mô tả

Xét một dãy vô hạn được tạo thành từ các khối liên tiếp. Khối thứ i là dãy các số nguyên dương từ 1 đến i viết liền nhau. Cụ thể:

  • Khối thứ 1 gồm các số từ 1 đến 1.
  • Khối thứ 2 gồm các số từ 1 đến 2.
  • Khối thứ 3 gồm các số từ 1 đến 3.
  • ...
  • Khối thứ i gồm các số từ 1 đến i.

Ghép tất cả các khối lại theo thứ tự, ta được dãy chữ số:

112123123412345…

Ví dụ, 56 phần tử đầu tiên của dãy là:

11212312341234512345612345671234567812345678912345678910

Các phần tử của dãy được đánh số từ 1. Chẳng hạn, phần tử thứ 1 là 1, phần tử thứ 3 là 2, phần tử thứ 20 là 5, phần tử thứ 38 là 2, phần tử thứ 56 là 0.

Cho q truy vấn độc lập. Với mỗi truy vấn cho một số nguyên k, hãy tìm chữ số đứng ở vị trí thứ k của dãy.

Dữ liệu vào

  • Dòng đầu chứa một số nguyên q: số lượng truy vấn.
  • Mỗi dòng trong q dòng tiếp theo chứa một số nguyên k: vị trí cần tìm.

Dữ liệu ra

In ra q dòng. Dòng thứ i chứa một chữ số duy nhất, là chữ số ở vị trí k của truy vấn thứ i.

Ràng buộc

  • 1≤q≤500
  • 1≤k≤1018

Ví dụ

Input Output Giải thích
5
1
3
20
38
56
1
2
5
2
0
Các vị trí này được mô tả trực tiếp trong đề. Vị trí 56 rơi vào chữ số 0 (chữ số cuối của số 10).
4
2132
506
999999999999999999
1000000000000000000
8
2
4
1
Truy vấn với các vị trí rất lớn, tới 1018.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0