两个整数之间所有整数的和

时间:2013-03-23 20:12:01

标签: python math range

我正在使用Python,我想找到两个数字之间的整数之和:

number1 = 2
number2 = 6
ans = (?)
print ans

#the numbers in between are 3,4,5

请给我数学公式或Python代码来执行此操作。

3 个答案:

答案 0 :(得分:7)

提示:

给出两个数字A和B(包括两个),其中B> A,A& A之间的值之和。 B由

给出
B(B + 1)/2 - (A - 1)A/2
=(B^2 + B - A^2 + A)/2
=((B - A)(B + A) + (B + A))/2
=(B + A)(B - A + 1)/2

如果A& B都是独家的,然后用B - 1代替B,用A + 1代替A.剩下的我作为练习留给你

通读Python Expression将数学表达式翻译成Python代码

注意 不幸的是,SO不支持MathJax,否则上面的表达式可能格式化得更好

答案 1 :(得分:3)

你需要这个来得到总和:

ans = number1  + number2

或者这不是你想做的吗? 既然你评论过:the numbers in between are 3,4,5,你的意思是这个吗?

>>> for i in range(number1+1,number2):
...     print i
... 
3
4
5

修改
因此,OP还需要两个数字之间所有数字的总和:

>>> number1 = 2
>>> number2 = 6
>>> sum(range(number1 + 1, number2))
12

第二部分由OP提供。

答案 2 :(得分:0)

我喜欢Grijesh的回答,简单而优雅。这是另一个使用递归调用的方法:

global sum
def sum_between(a, b):
    global sum
    # base case
    if (a + 1) == b:
        return sum
    else:
        sum += (a + 1)
        return sum_between(a + 1, b)

不像使用sum那样直接(范围(a + 1,b))。但作为递归函数的练习,这很简单。