⚠️ 循环转了几圈

👁️ 1 人浏览 💬 0 人评论 ❤️ 添加收藏

数一数解释器那个循环一共转了几圈,和指令条数放在一起:

PROG = [
    ("SET",   "x", 3),
    ("ADD",   "x", 4),
    ("MUL",   "x", 3),
    ("PRINT", "x", None),
]

def run(prog):
    env, out = {}, []
    for op, name, arg in prog:
        if op == "SET":
            env[name] = arg
        elif op == "ADD":
            env[name] = env[name] + arg
        elif op == "MUL":
            env[name] = env[name] * arg
        elif op == "PRINT":
            out.append(env[name])
    return out

def run_counted(prog):
    env, steps = {}, 0
    for op, name, arg in prog:
        steps += 1
        if op == "SET":
            env[name] = arg
        elif op == "ADD":
            env[name] = env[name] + arg
        elif op == "MUL":
            env[name] = env[name] * arg
    return steps

print(str(run_counted(PROG)) + "/" + str(len(PROG)))
提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论