P163SUMI - ROUND 3I - Chữ số thứ n

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.

  • Code:

C++:



JAVA:


Share this

Related Posts

Previous
Next Post »