-8

私はPythonを使用しており、2つの数値間の整数の合計を見つけたい:

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

#the numbers in between are 3,4,5

これを行うための数式または Python コードを教えてください。

4

3 に答える 3

7

ヒント:

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 をサポートしていないか、上記の式をより適切にフォーマットできた可能性があります

于 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は2つの数値の間のすべての数値の合計も必要とします:

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

OPによって与えられたこの2番目の部分。

于 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 に答える