Rustでフィボナッチ数列を試してみた
ここ数日、Rustを勉強中です。
当初は久しく書いてなかったCかC++を思い出すために再勉強しようかと思っていたのですが、 制御文とか、ポインタ・アドレスとか基本的な所はまだ大丈夫のつもりですが、ANSI関係とかすっかり忘れてしまっているので、 どうせ再スタートするなら最近気になってるモダンなRustを試してみるのもいいなって思いました。
まだRustっぽくないような気がしますが、今のところコレが精一杯です。
orderという変数で指定した数値+1個のフィボナッチ数列を表示します。
順番は逆に出力されてますが、ご愛嬌ということで。。。
以上になります
当初は久しく書いてなかったCかC++を思い出すために再勉強しようかと思っていたのですが、 制御文とか、ポインタ・アドレスとか基本的な所はまだ大丈夫のつもりですが、ANSI関係とかすっかり忘れてしまっているので、 どうせ再スタートするなら最近気になってるモダンなRustを試してみるのもいいなって思いました。
今回はフィボナッチ数列を表示してみます
参考
書いたコードは上記などを参考にして、こんな感じになりました。まだRustっぽくないような気がしますが、今のところコレが精一杯です。
fn fibonacci(x: i32) -> i32 { // matchも使える(select ~ case) if x == 0 { 0 } else if x == 1 { 1 } else { fibonacci(x - 1) + fibonacci(x - 2) } } fn main() { // この数値を変更 ///////////////////////////// let order = 11; // 何番目(ゼロ基数) // /////////////////////////////////////////// let mut fibs = vec![]; // 可変の配列 ベクター let mut q = order; loop { fibs.push(fibonacci(q)); q -= 1; if q < 0 { break; } } println!("fibonacci {}th number is {:?}.", order + 1, fibs); // call_me(add_two); }
コンパイルと実行
# cargo runこんな感じで出力されました。
orderという変数で指定した数値+1個のフィボナッチ数列を表示します。
順番は逆に出力されてますが、ご愛嬌ということで。。。
Compiling fibonacci v0.1.0 (/workspace/fibonacci) Finished dev [unoptimized + debuginfo] target(s) in 0.19s Running `target/debug/fibonacci` fibonacci 12th number is [89, 55, 34, 21, 13, 8, 5, 3, 2, 1, 1, 0].Rustのトレーニング置き場(github)にソースは上げてあります。
以上になります