Bài 1 ta sẽ có giải thuật như thế này nè, mình nghĩ như thế. Ta sẽ dựa vào độ lớn của k để tính toán xem số chữa kí tự thứ k là số có mấy chữ số, và cụ thể hơn, là số nào, kí tự thứ k là kí tự thứ mấy trong số vừa tính được.
Ta có 9 số có 9 chữ số, 90 số có 2 chữ số, 900 số có 3 chữ số.........
Cứ thế tính lên.
Ta sẽ tính và trừ đi trong k những số cần loại. Cụ thể, ví dụ
k=320
Ta có 9 số có 1 chữ số. Tất cả các số có 1 chữ số sẽ có 9*1=9 kí tự. Vì 320>9 nên kí tự thứ k ko của một số có 1 chữ số. Ta trừ k cho 9. Khi đó k còn lại 311. Ta có 90 số có 2 chữ số, tất cả sẽ có 90*2=180 chữ số. Vì k=311>180 nên k cũng ko củ một số có 2 chữ số. Ta trừ k cho 180. Khi đó k còn lại 31. Ta có 900 số có 3 chữ số, tất cả sẽ có 3*900=2700 chữ số. Vì k=31<2700 nên k sẽ là của một số có 3 chữ số. Ta sẽ tính số chưa k alf số nào. Ta lấy k div 3 rồi cộng 1. Ta được 11. Vậy k là của số có 3 chữ số thứ 11 từ nhỏ đến lớn. Số đó chính là 11+999=1010. Ta sẽ xem thử k là kí tự thứ mấy trong 1010. Ta lấy k mod 3 =1. Vậy kí tự thứ k ứng với tí tự thứ 1 trong 1010. vậy kí tự thìm được là "1". Chấm hết.