Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Tạo stored procedure tính giai thừa (factorial) trong MySQL

Tạo thủ tục fact(IN x INT) tính giai thừa bằng vòng lặp WHILE:

mysql> DELIMITER //
mysql> CREATE PROCEDURE fact(IN x INT)
    -> BEGIN
    -> DECLARE result INT;
    -> DECLARE i INT;
    -> SET result = 1;
    -> SET i = 1;
    -> WHILE i <= x DO
    -> SET result = result * i;
    -> SET i = i + 1;
    -> END WHILE;
    -> SELECT x AS Number, result AS Factorial;
    -> END//
Query OK, 0 rows affected (0.17 sec)

Gọi thủ tục:

mysql> CALL Fact(5);
+--------+-----------+
| Number | Factorial |
+--------+-----------+
| 5      | 120       |
+--------+-----------+

mysql> CALL Fact(6);
+--------+-----------+
| Number | Factorial |
+--------+-----------+
| 6      | 720       |
+--------+-----------+

Sử dụng biến cục bộ và vòng lặp WHILE để tính tích 1×2×...×x.