trang chủ / bài tập / turingtape

Băng Turing

Đề bài

Mô tả

Phương pháp Băng Turing chuyển một dãy số nguyên không dấu 8 bit thành chuỗi ký tự ASCII theo quy trình sau.

Các phần tử của dãy được xử lý lần lượt, bắt đầu từ phần tử thứ nhất. Việc xử lý phần tử thứ i gồm ba bước:

  1. Đảo ngược biểu diễn nhị phân 8 bit của mã ASCII của ký tự đã được in ra ngay trước đó. Với phần tử đầu tiên, kết quả của bước này được coi là 0.
  2. Lấy kết quả của bước trên trừ đi phần tử thứ i của dãy, theo modulo 256.
  3. Đảo ngược biểu diễn nhị phân 8 bit của kết quả bước 2 để được mã ASCII của ký tự thứ i cần in ra.

Cho trước chuỗi văn bản đã được in bằng phương pháp trên, hãy khôi phục dãy số ban đầu.

Dữ liệu vào

Một dòng duy nhất chứa chuỗi văn bản s. Chuỗi s có độ dài từ 1 đến 100 ký tự. Mã ASCII của mỗi ký tự trong s nằm trong đoạn [32,126] (từ dấu cách đến dấu ngã).

Dữ liệu ra

In ra dãy số ban đầu, mỗi số trên một dòng. Mỗi số là một số nguyên không dấu 8 bit (từ 0 đến 255).

Ràng buộc

  • 1|s|100
  • 32ASCII(si)126

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 là "H" mã ASCII 72=010010002. Đảo bit được 000100102=18. Kết quả bước 1 với phần tử đầu là 0, nên phần tử đầu tiên là (018)mod256=238.
o2^"t 10
170
210
54
22
Chuỗi đầu vào dài 5 ký tự nên dãy đầu ra có 5 số.

Bình luận

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

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0