UVA11956 Brainfuck 题解

· · 题解

按照题意模拟,操作时分别对 100 和 256 取模。用 %02X 输出结果。其中, % 表示一个格式字符串的起始;02 表示如果不足 2 位,用前导零填充;X 表示转换为 16 进制并使用大写字母。

for k in range(int(input())):
    a = [0] * 100
    p = 0
    for c in input():
        if c == '>':
            p = (p + 1) % 100
        if c == '<':
            p = (p - 1) % 100
        if c == '+':
            a[p] = (a[p] + 1) % 256
        if c == '-':
            a[p] = (a[p] - 1) % 256
    print(f'Case {k + 1}:', *['%02X' % x for x in a])