oracle 學習之--------利用遞迴演算法實現階乘
阿新 • • 發佈:2019-01-29
--------------------------
--遞迴演算法實現階乘 --
--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;
--遞迴演算法實現階乘 --
--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;