これがばかげた質問であるならば申し訳ありませんが、私はまだコンピュータサイエンスに精通していません。これはアルゴリズムの速度の問題です。
このような質問に出くわし、取り組むことにしました。私の計画は、正確な結果を得るために、必要に応じてフィボナッチ数列をインクリメントすることです。
これが私がどのようにインクリメントするかです。
unsigned int last(1), current(1) ;
unsigned int sum = 0 ;
looping
{
...
current += last ;
last = current - last ;
}
これは確かに必要な増分と同じくらい良いと思います。そして、私の限られた知識を考えると、おそらく私が考えることができるのと同じくらい良いと思います。しかし、これら2つの変数のみを使用して同じ増分を行う特別な方法はありますか?おそらく私は私の考えが間違っていますが、代わりにこれを行う方が速いでしょうか:
temp = current ;
current += last ;
last = temp ;
以前よりも視覚的に1つ多くのステートメントがあり、1つの追加の変数があります。どちらも同じことをしますが、どちらかが速く、メモリの使用量が少ないように感じます。私は正しいですか、どれが最も効率的であると考えられていますか?
ちなみに、私はポインタの使用経験があまりありませんが、int型の標準では各データは通常4バイトであるため、ポインタはあまり変更されないと思いますか?50バイトを使用するカスタムタイプがポインターを使用する方が良い理由は理解できますが、2番目のアルゴリズムには役立ちますか?