你将如何找到两个数字之间的数字之和。例如,1 和 5 之间的数字之和为 9,即 2 + 3 + 4。
问问题
185 次
4 回答
2
由于从 1 到 N 的整数之和等于 N*(N+1) / 2,因此非常简单:
create function sumBetween(@p_Lower integer, @p_Upper integer) returns int
as
begin
return ((@p_Upper-1) * @p_Upper)/2 - (@p_Lower * (@p_Lower+1))/2
end
select dbo.sumBetween(1,5)
编辑小提琴中的固定围栏错误
于 2013-08-16T15:09:34.140 回答
1
数学公式:((a + b)*n/2) - a - b
其中 n 是 a 和 b 之间的位数,包括 a 和 b
如果 a = 2 且 b = 5 则
((2 + 5)*4/2) - 2 - 5 = 7
于 2013-08-16T15:17:43.667 回答
0
((Xn+1)*Xn/2) - (X1-1)*X1/2 - Xn - X1
Xn=5 X1=1 ((5+1)*5/2) - (1-1)*1/2 - 5 -1 = 9
Xn=5 X1=2 ((5+1)*5/2) - (2-1)*2/2 - 5 -2 = 7
你可能需要稍微调整一下...
于 2013-08-16T14:57:15.850 回答
0
您可以修改 SQL 中的阶乘代码,就像SQL 函数中的代码一样 - 阶乘以构建您想要的函数。
更改 to 的行i * (i+1)
,i + (i+1)
您应该有一个解决方案。
于 2013-08-16T14:57:32.703 回答