日期:2014-05-17  浏览次数:20982 次

用PL/SQL 编写斐波那契额数列
有道作业题是用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循环吗,小弟还没学过函数,所以只能这样写。。。。
引用:
增加2个变量不就行了吗?
numplus3 number := num+3;
numminus3 number := num-3;

然后把你用num的地方换成numplus3 ,numminus3.
你可以把计算过程写成个函数,这样调用3次。