您如何找到两个数字之间的数字总和。例如,1到5之间的数字之和为9,即2 + 3 + 4。
答案 0 :(得分: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)
编辑修复了小提琴中的fencepost错误
答案 1 :(得分:1)
数学公式: ((a + b)* n / 2) - a - b
其中n是a和b之间的位数,包括a和b
如果a = 2且b = 5那么
((2 + 5)* 4/2) - 2 - 5 = 7
答案 2 :(得分: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
您可能需要稍微调整一下......
答案 3 :(得分:0)
您可以像在SQL Functions - factorial中那样修改SQL中的阶乘代码,以构建您想要的函数。
将i * (i+1)
的行更改为i + (i+1)
,您应该有一个解决方案。