我正在使用Python,我想找到两个数字之间的整数之和:
number1 = 2
number2 = 6
ans = (?)
print ans
#the numbers in between are 3,4,5
请给我数学公式或Python代码来执行此操作。
答案 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))。但作为递归函数的练习,这很简单。