1. 程式人生 > >oracle 學習之--------利用遞迴演算法實現階乘

oracle 學習之--------利用遞迴演算法實現階乘

--------------------------
--遞迴演算法實現階乘      --
--create by aven!       --
--------------------------


CREATE OR REPLACE PROCEDURE TEST01(p_number IN OUT NUMBER,
                                   p_result IN OUT NUMBER)
IS
BEGIN
  IF p_number > 1 then
    p_result := p_result*p_number;
    p_number := p_number - 1;
    TEST01(p_number,p_result);
   elsif p_number >=0 and p_number <=1 then
     p_result := p_result*1;
   end if;
end;


--輸出測試
declare
   l_number number := 5;
   l_result number := 1;
   l_temp number;
begin
  l_temp := l_number;
  TEST01(p_number => l_number,p_result => l_result);
  dbms_output.put_line(l_temp||'!='||l_result);
end;