0

私はpythonが初めてで、この次の質問は簡単に思えますが、正しく理解できないようです。コードに n の入力を入れた後、機能する数式を取得する方法が思いつきません。

これが問題です: ユーザーに正の偶数の入力 n を求めるプログラムを作成し、n までのすべての正の偶数の合計である合計 2+4+6+8+...+n を出力します。 .

助けてくれてありがとう!!!

4

4 に答える 4

3

どうやら探している結果は の整数の合計の 2 倍であり[1, n/2]、これは に評価され(n/2)*(n/2 + 1)/2ます。したがって、探している式は です(n/2)*(n/2 + 1)

于 2013-07-25T00:32:17.613 に答える
3

これは課題であり、コードを投稿していないため、2 つのヒントがあります。

  1. このrange関数は、必要なリストを生成できます。リストの開始、停止 (リストには含まれていません)、およびステップの 3 つのパラメーターを使用します。1 つおきの数を数えているので、ステップは 2 です。

  2. このsum機能はかなり役に立ちます。

于 2013-07-25T00:31:11.290 に答える
1

仮定しn=8ます。range追加したい番号のリストを提供します

>>> range(2, n+1,2)
[2, 4, 6, 8]

sumリスト内のエントリを追加する方法を提供します

>>> sum(range(2, n+1, 2))
20

この式を使用して、すべての個々の数値を追加せずに合計を計算することができます

>>> n*(n+2)/4
20

ただし、その答えを使用する場合は、式の導出方法を示す必要があります。

これは n=12 のスケッチで、A10 をC表し、12を表します

22CCCCCCCCCCCC
4444AAAAAAAAAA
66666688888888

一番上の行を見ると、この長方形が(n+2)広いことがわかります。少し考えてみると、高さがn/4. 合計は、これら 2 つの項の積になります。

nが 4 で割り切れない場合も同様の議論が成り立ちます。

于 2013-07-25T00:45:20.430 に答える
1

最も単純ですが、奇数または負の数に対して間違った答えが返されます。

n=int(raw_input('Enter a positive even integer:'))
print n*(n+2)/4

奇数と負の数の正しい答えを与える:

n=int(raw_input('Enter a positive even integer:')) >>1<<1
print n*(n+2)/4 if n>0 else 0

また

n=int(raw_input('Enter a positive even integer:'))
print sum(range(2, n+1, 2))
于 2013-07-25T00:56:24.847 に答える