示例#1
0
            pointer_shift = op_add(input, i_pointer)
        if opcode == 2:
            pointer_shift = op_mult(input, i_pointer)
        if opcode == 3:
            pointer_shift = op_input(input, i_pointer)
        if opcode == 4:
            pointer_shift = op_output(input, i_pointer)
        if opcode == 5:
            pointer_shift = op_jmp_if_true(input, i_pointer)
        if opcode == 6:
            pointer_shift = op_jmp_if_false(input, i_pointer)
        if opcode == 7:
            pointer_shift = op_less_than(input, i_pointer)
        if opcode == 8:
            pointer_shift = op_equals(input, i_pointer)

        i_pointer += pointer_shift

    return (input[0])


if __name__ == '__main__':
    input = Input(5).lines()
    input = [int(string) for string in input[0].split(',')]

    input_value = 1
    program(input.copy())

    print(f'Part 2:')
    input_value = 5
    program(input.copy())
示例#2
0
    input_len = len(input)
    while i_pointer < input_len:
        opcode = input[i_pointer]

        if opcode == 99:
            break

        if opcode == 1:
            pointer_shift = op_add(input, i_pointer)
        if opcode == 2:
            pointer_shift = op_mult(input, i_pointer)

        i_pointer += pointer_shift


    return(input[0])

if __name__ == '__main__':
    input = Input(2).lines()
    input = [int(string) for string in input[0].split(',')]

    test = ['1,1,1,4,99,5,6,0,99']
    test = [int(string) for string in test[0].split(',')]

    assert part1(test) == 30

    erg1 = part1(input.copy(), 12, 2)
    print(f'Part 1: {erg1}')

    erg2 = part2(input)
    print(f'Part 2: {erg2}')