有道作业题是用PL/SQL编写斐波那契额数列并查询,要求输入的数字在30到70之间,并显示F(n),F(n-3),F(n+3).小弟我会用PL/SQL编写斐波那契额数列,但是不知道该如何显示F(n-3),F(n+3),n是自己输入的数字。下面是我写的程序,我只会算指定n的值,怎么算F(n-3),F(n+3)呢?跪求各位大神帮忙!谢谢谢谢!
ACCEPT p_1 PROMPT 'Please enter an integer between 30 and 70:'
DECLARE
num number := &p_1;
p number := 0;
q number := 1;
r number;
BEGIN
if num<30 or num>70 then
DBMS_OUTPUT.PUT_LINE('Invalid number.');
else
for k in 2..num loop
r := p + q;
p := q;
q := r;
end loop;
DBMS_OUTPUT.PUT_LINE('F('||num||') = '||r);
end if;
END;
------解决方案--------------------
比如输入48,结果可以显示F(48)=xxxxxx, 怎么算F(45)和F(51)呢?
------解决方案--------------------
增加2个变量不就行了吗?
numplus3 number := num+3;
numminus3 number := num-3;
然后把你用num的地方换成numplus3 ,numminus3.
你可以把计算过程写成个函数,这样调用3次。
------解决方案--------------------
感谢大神帮忙啊,十分感谢!您的意思是让我再写两个loop循环吗,小弟还没学过函数,所以只能这样写。。。。