domingo, 8 de diciembre de 2013

factorial

//Consigue el factorial de un numero 

CREATE OR REPLACE
FUNCTION factorial (obj IN PLS_INTEGER) RETURN PLS_INTEGER IS
num PLS_INTEGER := 1;
res PLS_INTEGER := 1;


BEGIN
  DBMS_OUTPUT.PUT_LINE('Numeros factoriales');
  WHILE res < obj LOOP
    res := res * num;
    DBMS_OUTPUT.PUT_LINE(num);
    num := num + 1;
  END LOOP;
  
  IF res = obj THEN
    DBMS_OUTPUT.PUT_LINE('El resultado es ');
    RETURN res;
  ELSE
    DBMS_OUTPUT.PUT_LINE('El resultado no dio exacto : ');
    RETURN res;
  END IF;

  
END;


/** Para mostrarlo**/
SET SERVEROUTPUT ON
DECLARE
  x PLS_INTEGER := 180;

BEGIN
DBMS_OUTPUT.PUT_LINE(factorial(x));

END;

No hay comentarios:

Publicar un comentario