私は現在 Project Euler の問題に取り組んでいる Python の初心者です (聞いたことがない人はこちら)。私はこの特定の問題を解決しましたが、いくつかの質問が残っています:
def fibsum():
result = []
a, b = 0, 1
while True:
a, b = b, a + b
print b
if b < 4000000 and b % 2 == 0:
result.append(b)
if b > 4000000:
break
print sum(result)
fibsum()
PowerShell を使用してこれを実行すると、最初に必要なすべての数値が出力され (ただし、1 つ上になります)、最後に合計が出力されます。
1
2
3
5
8
...
3524578
5702887 <-- This is over 4,000,000. Why is this here?
4613732 <-- This is the answer.
4,000,000 を超える最初の値に達する前に、ループの反復を停止させる方法はありますか?
スペースを節約するために、印刷を使用する場合、すべての値をリスト形式 ([ 、 、 ]) で印刷する方法はありますか?
元のコードの print を yield または return (変数 b の場合) に置き換えると、プログラムは何も出力しません。
印刷合計(結果)
関数の最後に。
結果を定義して値を追加することなく、これを簡単にする方法はありますか? 値が実際の結果と同様の形式で返される場合、 sum() は機能していないようです。