フィボナッチ数列を求めるプログラムを作る
目次:プログラミング学習
今回のプログラミング学習はフィボナッチ数列を作るプログラムを作ります。
フィボナッチ数列
フィボナッチ数列(フィボナッチすうれつ、(英: Fibonacci sequence) (Fn) は、次の漸化式で定義される:
F0 = 0,
F1 = 1,
Fn+2 = Fn + Fn+1 (n ≥ 0)
フィボナッチ数 - Wikipedia
0, 1, 1, 2, 3, 5, 8,,,,
2つ前と1つ前の数字を足した値ですね。
0番から30番までを画面に出力するプログラムを作成してください。
プログラム
特殊なのは 0 番目と 1 番目です。
rust
1
2
3
4
5
6
7
8
9
10
11
12
fn main() {
let mut f = [0; 30]; // 要素数30個の配列
f[1] = 1;
for i in 2..30 {
f[i] = f[i-2] + f[i-1];
}
println!("{:?}", f);
}
実行
1
2
$ cargo run
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229]
まとめ
特に難しい数式はありませんでした。rust で配列は最初にサイズを決め、プログラム実行中にサイズを変更することはできません。 また、変数宣言の時に mut を書かないと要素を変更することができなくなりますのでビルドエラーとなります。 コンソールに出力する println! マクロの使い方も {} ではなく {:?} と書きました。
追加
要素数を可変にできるようにしてみてください。配列ではなくベクタを使用します。