my sql计算任意整数N的阶乘

mysql中如何创建存储过程,计算任意整数N的阶乘... my sql 中如何创建存储过程,计算任意整数N的阶乘 展开
 我来答
百度网友0f37e23c0
2010-06-18 · TA获得超过1543个赞
知道大有可为答主
回答量:1070
采纳率:50%
帮助的人:1282万
展开全部
你的目的:计算任意整数N的阶乘:可能会出现问题,当乘积 大于 bigint的最大值后,就会出错,比如 10000000的10000000次方或者更大的次方,肯定大于bigint的最大值,所以下面的存储过程,进阶成绩在一定的范围内有效。

我来回答吧,我测试过没有问题的
DELIMITER $$

CREATE PROCEDURE `Squair`(input int, n int)
BEGIN
declare totail bigint default input;
declare _index int default 1;
emp_loop: LOOP
if _index >= n then
LEAVE emp_loop;
end if;
set totail = totail * input;
set _index = _index + 1;
end loop emp_loop;
select totail;
END $$

DELIMITER ;

-- 执行

CALL Squair(10,5);
-- 执行下面的语句将会出错

CALL Squair(10000000,10000000);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式