juliaでフィボナッチ数列を実装してみた。ただそれだけ。
入力を受け付けてちょっとした処理をする実装をjuliaでしてみたかったので、試しにフィボナッチ数列を実装してみた。
フィボナッチ数列自体の詳細はwikipediaを参照すると良い。
仕様としては、「標準入力から数値を受け取り、フィボナッチ数列上のその順番の場所の値を返す」、という簡単なもの。
まずは標準入力から値を受け取る部分だが、これは readline()
を使えばできる。
次に、標準入力から受け取った値は文字列になので、数値に変換する必要がある。juliaでは parse(Int64, v)
でできる。(今回は入力が数値かどうかのエラーハンドリングはしていない。)
あとは、この値に対応するフィボナッチ数列の値を返す関数を実装する。 function fibo() ... end
で関数を定義し、その中で if...else...end
で特定の値の時の処理を実装すれば良い。
これらをまとめると以下のようになる。
input = readline() num = parse(Int64, input) function fibo(n::Int) if n == 0 return 0 elseif n == 1 return 1 else return fibo(n - 1) + fibo(n - 2) end end println(fibo(num))
nの値に応じて結果を返すが、nが0でも1でもない場合はfibo関数を再度呼び出して計算する。
これだけの実装だが、まだjuliaの書き方に慣れていないのと、標準入力やパースの処理などを調べているとそれなりに時間がかかった。
これらがわかっていれば、AtCoderのA問題なら対応できそうな気がしている。
参考