В данной статье приведён алгоритм вычисления n-ого числа Фибоначчи на языке Transact sql (t-sql).
Пример проверялся в MS SQL Server 2008 R2.
Код алгоритма:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
-- Blog - https://progtask.ru CREATE FUNCTION Fib (@Digit INT) RETURNS NUMERIC(38) AS BEGIN DECLARE @Counter INT, @One NUMERIC(38), @Two NUMERIC(38) SET @Two = 1 IF @Digit > 2 BEGIN SET @Counter = 3 SET @One = 1 WHILE @Digit >= @Counter BEGIN SET @Two = @One + @Two SET @One = @Two - @One SET @Counter = @Counter + 1 END END RETURN @Two END |
При помощи данной функции можно вычислить максимальное число Фибоначчи, равное 183. Это обусловлено тем, что более большие числа просто не влазят в типы данных, представленные в MS SQL Server.
Пример:
1 |
SELECT [dbo].[Fib] (183) Result |
Результат: