题目:
我们知道兔子数列(斐波那契数列)具有如下特征:
1,1,2,3,5,8,13,.....
试用MySQL语句输出前100个兔子数列
代码:
CREATE table rabbit(
num tinyint UNSIGNED auto_increment primary key,
rabbit_num DECIMAL(21) UNSIGNED DEFAULT 1);
DELIMITER //
CREATE PROCEDURE rabbitnum()
BEGIN
declare n int default 1;
declare a decimal(21) unsigned default 1;
declare b decimal(21) unsigned default 1;
declare c decimal(21) unsigned default 0;
TRUNCATE TABLE rabbit;
insert into rabbit(rabbit_num) values(a);
insert into rabbit(rabbit_num) values(b);
WHILE n<=98 DO
SET c=a+b;
INSERT into rabbit(rabbit_num) values(c);
SET a=b;
SET b=c;
SET n=n+1;
END WHILE;
END//
CALL rabbitnum()//
SELECT * FROM rabbit//
DELIMITER ;
注意:第一百个兔子数很大,所以要注意数据类型
如果要输出更多的兔子数列,更改100数字即可,或另设一个参数,输出任意量的斐波那契数列。
输出结果: