私はpythonが初めてで、この次の質問は簡単に思えますが、正しく理解できないようです。コードに n の入力を入れた後、機能する数式を取得する方法が思いつきません。
これが問題です: ユーザーに正の偶数の入力 n を求めるプログラムを作成し、n までのすべての正の偶数の合計である合計 2+4+6+8+...+n を出力します。 .
助けてくれてありがとう!!!
私はpythonが初めてで、この次の質問は簡単に思えますが、正しく理解できないようです。コードに n の入力を入れた後、機能する数式を取得する方法が思いつきません。
これが問題です: ユーザーに正の偶数の入力 n を求めるプログラムを作成し、n までのすべての正の偶数の合計である合計 2+4+6+8+...+n を出力します。 .
助けてくれてありがとう!!!
どうやら探している結果は の整数の合計の 2 倍であり[1, n/2]
、これは に評価され(n/2)*(n/2 + 1)/2
ます。したがって、探している式は です(n/2)*(n/2 + 1)
。
これは課題であり、コードを投稿していないため、2 つのヒントがあります。
このrange
関数は、必要なリストを生成できます。リストの開始、停止 (リストには含まれていません)、およびステップの 3 つのパラメーターを使用します。1 つおきの数を数えているので、ステップは 2 です。
このsum
機能はかなり役に立ちます。
仮定し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 のスケッチで、A
10 をC
表し、12を表します
22CCCCCCCCCCCC
4444AAAAAAAAAA
66666688888888
一番上の行を見ると、この長方形が(n+2)
広いことがわかります。少し考えてみると、高さがn/4
. 合計は、これら 2 つの項の積になります。
n
が 4 で割り切れない場合も同様の議論が成り立ちます。
最も単純ですが、奇数または負の数に対して間違った答えが返されます。
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))