2016-07-14 15 views
1

私は値を取得し、別の変数に格納して新しい値を取得する変数を作る方法を見つけることに興味がありました。
実用的な例として、フィボナッチシーケンスがあります。
私は、このシーケンスのために利用可能なpythonコードを妥当に検索しました。
トンがありました。私の基本的な把握のためには、ほとんどの場合、あまりにも隠されていました。Python:範囲(x、y、n)を使ったフィボナッチ数列

私はこれを思いついた。

a = 1 
b = 0 
print (b) 
for i in range(0,100): 
c = b 
b = a 
a = c + b 
print(a) 

端において、ループは、変数aを通過する値を出力すべきであるように:
0,1,2,3,5,8,13,21および仕事を行う必要があり、単純な、34,55,89

しかし、私は100^10までずっと進んでいます。そのコードのための最終的な出力と同様に
は次のとおりです。
0,1,2,3,5,8,13,21,34,55,89,144,233,377、...、573147844013817084101

誰かが何であるかを説明するだろう起こっている?

+0

としてwhileループにループの変更 'あなたは計算を行います持っfor' 100回 –

+2

ループはあなたがしたことを正確に実行しているからです:_i_ Fibonnaciの最初の数字を_i_を100以下で印刷します。レコードの場合、100番目のFibonnaciは354224848179261915075です。 –

+1

Ok。私は10に増分を設定し、それは値の数を分けた。しかし、私は今、以前よりも多くの疑問を持っています。 – randomhopeful

答えて

5

あなたは、回線を介して

c = b 
b = a 
a = c + b 
print(a) 

100回を実行しています。最初の100のフィボナッチ数が得られます。あなたは100までのフィボナッチ数を印刷したい場合は

、あなたは、100の値を取得しているように

while (a < 100): 
    c = b 
    b = a 
    a = c + b 
    print(a) 
+1

ありがとうございます。私はこの繰り返しを使用すべきだった。最初のコメントは、インクリメントを以下のように追加すると私に指摘しました:for in i(0,100,10) – randomhopeful

関連する問題