如何编写计算n!(n=20)的SQL语句?请高手指点

如题所述

第1个回答  推荐于2017-09-19
也不知道你什么库。
用sqlserver写了个。供参考把。也根据自己情况修改
create function f_test(@input int)
returns varchar(1000) as
begin
declare @i int
declare @ret varchar(1000)
declare @return numeric(38)
set @i = @input
set @return = 1
set @ret = ''
while @i > 1
begin
set @ret = @ret + convert(varchar(1000),@i)+'*'
set @return = @return*@i
set @i = @i - 1
end
if @i = 1
begin
set @ret = @ret + convert(varchar(1000),@i)
set @return = @return*@i
end
return @ret + '='+convert(varchar(38),@return)
end

--测试
select dbo.f_test(5)
--结果
5*4*3*2*1=120
--测试
select dbo.f_test(20)
--结果
20*19*18*17*16*15*14*13*12*11*10*9*8*7*6*5*4*3*2*1=2432902008176640000本回答被提问者采纳
相似回答