Người Gửi: Dương Lee
- Problem:
Viết lần lượt các số tự nhiên sát cạnh nhau, ta sẽ được một dãy số vô hạn “12345678910…”
Tìm chữ số thứ n trong dãy số vô hạn đó.
Input
Dòng duy nhất chứa số nguyên n (1 <= n <= 1000)
Output
Chữ số thứ n.
Example:
Input
11
Output:
0
- Solution:
Bài này sẽ xét trên phương diện mảng:
- n: [1,9] nó sẽ có dạng mảng một chiều:
1, 2, 3, ...
Chữ số sẽ tương ứng với số đó
- n: [10,189] nó sẽ có dạng mảng 2 chiều:
10 11 12 13 ... 17 18 19
20 21 22 23 ... 27 28 29
...
90 91 92 93 ... 97 98 99
Vơi mỗi số có 2 chữ số: biết được chữ số thứ bao nhiêu trong [10,189] sẽ xác định được stt của số đó trong mảng: (n/2); VD: n=12 [1,9] -> n=2 [10,198] -> sttS=n/2=1; ->số thứ 1 trong mảng.
Mảng có dạng 10x10: sttS/10=0 -> hàng=1, stt%10=1 -> cột=2;
sttS chia hết cho 2 nên chữ số thứ n là chỉ số của hàng=2;
- n: [190,..]: nó sẽ có dạng 3 chiều. tương tự như mảng 2 chiều.
với chỉ số hàng, cột có được đó chính là chữ số cần tìm.