Skip to content

Instantly share code, notes, and snippets.

@NekoTashi
Created September 24, 2014 02:29
Show Gist options
  • Save NekoTashi/d201e6163fedecdc4a36 to your computer and use it in GitHub Desktop.
Save NekoTashi/d201e6163fedecdc4a36 to your computer and use it in GitHub Desktop.
DECLARE
TYPE t_number_list IS varray(100) of INTEGER;
v_number_list t_number_list;
v_prev_number_list t_number_list;
v_one INTEGER := 1;
v_exponent INTEGER := 10;
v_print varchar(100);
BEGIN
v_prev_number_list := t_number_list(1, 2, 1);
DBMS_OUTPUT.PUT_LINE(1);
DBMS_OUTPUT.PUT_LINE(v_prev_number_list(1) || ' ' || v_prev_number_list(2) || ' ' || v_prev_number_list(1));
FOR times IN 3.. v_exponent LOOP
v_number_list := t_number_list(1);
FOR i IN 1.. v_prev_number_list.count-1 LOOP
v_number_list.extend;
v_number_list(i+1) := v_prev_number_list(i) + v_prev_number_list(i+1);
END LOOP;
v_number_list.extend;
v_number_list(v_prev_number_list.count+1) := 1;
-- Print
FOR j IN 1.. v_number_list.count LOOP
v_print := concat(v_print, to_char(v_number_list(j)));
v_print := concat(v_print, ' ');
END LOOP;
DBMS_OUTPUT.PUT_LINE(v_print);
v_print := '';
v_prev_number_list.delete;
v_prev_number_list := v_number_list;
v_number_list.delete;
END LOOP;
END;
/
OUTPUT:
1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
1 10 45 120 210 252 210 120 45 10 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment