Băng Turing
Đề bài
Mô tả
INTERCAL là một trong những ngôn ngữ lập trình kỳ quặc nhất từng được tạo ra. Một đặc trưng của nó là phương pháp xuất ký tự gọi là Turing Tape, biến đổi một mảng các số nguyên 8 bit không dấu thành chuỗi ký tự được in ra.
Mảng được xử lý lần lượt theo các bước sau (với phần tử thứ ):
- Lấy mã ASCII của ký tự vừa được in trước đó, biểu diễn dưới dạng 8 bit nhị phân, rồi đảo ngược thứ tự 8 bit đó. Với phần tử đầu tiên (), kết quả của bước này được quy ước là .
- Lấy kết quả của bước 1 trừ đi rồi lấy modulo .
- Biểu diễn kết quả của bước 2 dưới dạng 8 bit nhị phân và đảo ngược thứ tự bit để thu được mã ASCII của ký tự thứ cần in.
Cho trước chuỗi ký tự được sinh ra theo phương pháp trên, hãy khôi phục mảng ban đầu.
Dữ liệu vào
Một dòng duy nhất chứa chuỗi ký tự được in ra.
Dữ liệu ra
In ra mảng , mỗi phần tử trên một dòng.
Ràng buộc
- Mỗi ký tự của có mã ASCII trong đoạn (từ dấu cách đến dấu ngã).
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| Hello, World! | 238 108 112 0 64 194 48 26 244 168 24 16 162 |
Ký tự đầu tiên là "H" có mã ASCII . Đảo ngược 8 bit cho . Vì bước 1 cho kết quả , ta có . |
| o2^"t | 10 170 210 54 22 |
Chuỗi dài nên mảng có phần tử. |
Bình luận