1

私のアプローチ

DELIMITER $$
CREATE FUNCTION fibonacci(num INT)
RETURNS INT
DETERMINISTIC
BEGIN
    DECLARE fib1 INT DEFAULT 0;
    DECLARE fib2 INT DEFAULT 1;
    DECLARE fib3 INT DEFAULT 0;
    DECLARE str VARCHAR(255) DEFAULT '01';
    
    IF num = 1 THEN
        RETURN fib1;
    ELSEIF num = 2 THEN
        RETURN CONCAT(fib1, fib2);
    ELSE
        WHILE num > 2 DO
            SET fib3 = fib1 + fib2;
            SET fib1 = fib2;
            SET fib2 = fib3;
            SET num = num - 1;
            SET str = CONCAT(str, fib3);
        END WHILE;
        RETURN str;
    END IF;
END $$
DELIMITER ;

SELECT fibonacci(6); を使用して上記の関数を呼び出すと、先行ゼロ (0) なしで 11235 を返します。先行ゼロも表示するにはどうすればよいですか?

4

1 に答える 1