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

如题所述

初值太大了,,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 函数即可
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答