```
DECLARE
    p NUMBER := 0;
    q NUMBER := 1;
    r NUMBER;
BEGIN
    DBMS_OUTPUT.PUT_LINE(LPAD('0: ', 4) || LPAD(p, 10)); 
    DBMS_OUTPUT.PUT_LINE(LPAD('1: ', 4) || LPAD(q, 10)); 
    FOR k IN 2..20 LOOP 
        r := p + q;
            DBMS_OUTPUT.PUT_LINE(LPAD(k, 2) || ': ' || LPAD(r, 10)); 
            p := q;
            q := r;
    END LOOP;
END;

```

We went over this in one of my classes but I didnt really get a good understanding to how this for loop works. I know the output prints numbers 0-20 on the left and I am confused at how the numbers on the right increase as they do.