Viết các số thập phân 1, 2,… liên tiếp thu được dãy số sau:
12345678910111213141516171819202122 …
Viết chương trình tìm vị trí xuất hiện đầu tiên của số N trong dãy số trên:
Input
Gồm duy nhất 1 số N, 1 ≤ N ≤ 100,000.
Output
Sô duy nhất là vị trí xuất hiện đầu tiên của số N trong dãy.
Sample
input
15
output
20
input
34
output
3
input
142
output
73
Hướng dẫn
Bạn sinh hết chuỗi “12345678910111213141516171819202122 …” rồi dùng hàm pos trong pascal để tìm thôi. độ dài chuỗi này là khá lớn nên phải sử dụng ansistring trong pascal. xem code sẽ hiểu rõ hơn:
Code tham khảo MDIGITS2 – First Number
const fi=''; var f:text; n,i:longint; s1:ansistring; tam,nstr:string; begin assign(f,fi); reset(f); readln(f,n); close(f); s1:=''; for i:=1 to 100000 do begin str(i,tam); s1:=s1+tam; end; str(n,nstr); writeln(pos(nstr,s1)); end.