帮我定义一个存储过程,要求输入一个整数n,输出n的阶乘
时间: 2023-07-01 14:16:40 浏览: 45
好的,以下是一个 MySQL 存储过程,可以实现输入一个整数 n,输出 n 的阶乘:
```
DELIMITER //
CREATE PROCEDURE factorial(IN n INT, OUT result BIGINT)
BEGIN
DECLARE i INT DEFAULT 1;
DECLARE fact BIGINT DEFAULT 1;
WHILE i <= n DO
SET fact = fact * i;
SET i = i + 1;
END WHILE;
SET result = fact;
END //
DELIMITER ;
```
这个存储过程接受一个整数参数 n,在过程体中使用 while 循环来计算 n 的阶乘,并将结果存储在输出参数 result 中。在执行存储过程时,只需要传入一个整数参数 n,即可得到 n 的阶乘。例如,执行以下语句可以得到 5 的阶乘:
```
CALL factorial(5, @result);
SELECT @result;
```
输出结果为:120。