練習問題8.4

参照と繰り返しの構文(while,for)を使ってフィボナッチ数を求める関数を定義しなさい。

# let fib n =
let fibs = ref (1, 1) in
let i = ref 1 in
while !i < n do
fibs := (snd !fibs, fst !fibs + snd !fibs);
i := !i + 1
done;
snd !fibs
;;
val fib : int -> int = <fun>

初項を第0項とした。

# fib 0;;
- : int = 1
# fib 1;;
- : int = 1
# fib 2;;
- : int = 2
# fib 3;;
- : int = 3
# fib 4;;
- : int = 5
# fib 5;;
- : int = 8
# fib 6;;
- : int = 13
カテゴリー: OCaml パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください