实用T-SQL编程计算S=1!⼀3!+3!⼀5!+5!⼀7!+……(2*n-1)!⼀(2*n+1)!,n的初值为10

2024-11-20 22:40:55
推荐回答(1个)
回答1:

初值太大了,,SQL 使用 BIGINT 类型也只能接受 20!
CREATE FUNCTION [dbo].[JC] (@n int)
RETURNS bigint AS
BEGIN
if @n>20 return 0
declare @Result bigint
if @n=1 SET @Result= 1
else SET @RESULT= @n*dbo.JC(@n-1)

RETURN @REsult

END

-------------------------------------------------------------------
CREATE FUNCTION [dbo].[TEST] (@n bigint)
RETURNS float(53) AS
BEGIN
if @n>20 return 0

declare @result float(53)

if @n=1 set @Result=(1.0*(dbo.jc(1)))/(1.0*(dbo.jc(3)))
else SET @Result=(1.0*(dbo.jc(2*@n-1)))/(1.0*(dbo.jc(2*@n+1)))+dbo.TEST(@n-1)

return @result

END
定义了2个函数,调用 TEST 函数即可