私はPythonを使用しており、2つの数値間の整数の合計を見つけたい:
number1 = 2
number2 = 6
ans = (?)
print ans
#the numbers in between are 3,4,5
これを行うための数式または Python コードを教えてください。
ヒント:
2 つの数値 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 をサポートしていないか、上記の式をより適切にフォーマットできた可能性があります
合計を取得するには、これが必要です。
ans = number1 + number2
それとも、これはあなたがやりたかったことではありませんか?あなたがコメントしたので:the numbers in between are 3,4,5
、あなたはこれを意味しますか?
>>> for i in range(number1+1,number2):
... print i
...
3
4
5
編集:
したがって、OPは2つの数値の間のすべての数値の合計も必要とします:
>>> number1 = 2
>>> number2 = 6
>>> sum(range(number1 + 1, number2))
12
OPによって与えられたこの2番目の部分。
シンプルでエレガントな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)) を使用するほど単純ではありません。しかし、再帰関数の演習としては単純に興味深いものです。