0

你将如何找到两个数字之间的数字之和。例如,1 和 5 之间的数字之和为 9,即 2 + 3 + 4。

4

4 回答 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)

SQL小提琴

编辑小提琴中的固定围栏错误

于 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 回答