Xây dựng dãy số

Xem dạng PDF

Gửi bài giải

Điểm: 10,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài

Người ta xây dựng một dãy vô hạn ~A~ chỉ gồm các chữ số ~0~, ~1~, ~2~ theo quy tắc sau:

Bước 0

Gán:

~a₁ = 0~

Bước k + 1

Giả sử sau bước ~k~ đã tạo được ~m~ chữ số đầu tiên của dãy:

~a₁a₂...aₘ~

Khi đó ở bước tiếp theo, nối thêm ~m~ chữ số:

~b₁b₂...bₘ~

với:

~bᵢ = (aᵢ + 1) mod 3~

Khi đó số lượng chữ số tăng gấp đôi sau mỗi bước.

Các giai đoạn đầu của dãy là:

~0 → 01 → 0112 → 01121220 → 0112122012202001 → ...~

Yêu cầu

Cho vị trí ~N~, hãy xác định chữ số thứ ~N~ của dãy ~A~.

Dữ liệu vào

Gồm nhiều dòng, mỗi dòng chứa một số nguyên dương ~N~.

Ràng buộc
  • ~1 ≤ N ≤ 10^18~.

Kết quả

Với mỗi giá trị ~N~, in ra chữ số thứ ~N~ của dãy ~A~ trên một dòng.

Ví dụ

Dữ liệu vào
4
8
Kết quả
2
0
Giải thích

Dãy bắt đầu như sau:

~01121220...~

  • Chữ số thứ ~4~ là ~2~.
  • Chữ số thứ ~8~ là ~0~.

Bình luận

Hãy đọc nội quy trước khi bình luận.


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