Mã bài:
digit
Điểm:
1,5 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Dữ liệu vào:
stdin
Dữ liệu ra:
stdout
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Golang, Java, Pascal, Perl, Python, Rust
Từ chuỗi nhị phân ~S = 10~, người ta tạo ra chuỗi nhị phân mới bằng cách ghép chuỗi ~S~ ban đầu với chính nó sau khi đã đảo tất cả các bit của ~S~ (nghĩa là đổi bit ~1~ thành bit ~0~ và bit ~0~ thành bit ~1~) và cứ lặp đi lặp lại các thao tác trên cho đến khi chuỗi ~S~ có không ít hơn ~N~ chữ số.
Ví dụ:
- Với độ dài ~2~: chuỗi ~S = 10~
- Với độ dài ~4~: chuỗi ~S = 1001~
- Với độ dài ~8~: chuỗi ~S = 10010110~
- Với độ dài ~16~: chuỗi ~S = 1001011001101001~
Yêu cầu: Cho biết số nguyên ~N~ ~(0 < N \le 2^{31})~. Hãy tìm ký tự thứ ~N~ của chuỗi ~S~.
Dữ liệu:
Giá trị của ~N~
Kết quả:
Chữ số thứ ~N~ của xâu nhị phân ~S~.
Sample Input
15
Sample Output
0
Giới hạn:
- ~1 \le N \le 2^{31}~.
- ~50\%~ số test với ~N \le 10 000~.
Bình luận