-8

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

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

#the numbers in between are 3,4,5

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

4

3 回答 3

7

暗示:

给定两个数字 A 和 B(包括两者),其中 B > 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 替换为 B - 1,将 A 替换为 A + 1。其余的我留给你作为练习

通读Python 表达式以将数学表达式转换为 Python 代码

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

于 2013-03-23T20:22:04.670 回答
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 给出。

于 2013-03-23T20:19:46.847 回答
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(range(a+1, b)) 那样直接。但只是作为递归函数的练习很有趣。

于 2013-03-23T22:49:45.277 回答