最近の更新 (Recent Changes)

2014-01-01
2013-01-04
2012-12-22
2012-12-15
2012-12-09

Wikiガイド(Guide)

サイドバー (Side Bar)


← 前のページに戻る

0.2 フィボナッチ数の計算

フィボナッチ数の計算を行います。


// フィボナッチ数の計算

// 初期値
0は0のフィボナッチ数です。
1は1のフィボナッチ数です。

// フィボナッチ数の定義
#n1=#n-1を計算し、
#n2=#n-2を計算し、
#x1は、#n1のフィボナッチ数であり、
#x2は、#n2のフィボナッチ数であり、
#result=#x1+#x2を計算する場合、
#resultは#nのフィボナッチ数です。

// 計算
#xは、1のフィボナッチ数ですか?
#xは、2のフィボナッチ数ですか?
#xは、3のフィボナッチ数ですか?
#xは、4のフィボナッチ数ですか?
#xは、5のフィボナッチ数ですか?
#xは、6のフィボナッチ数ですか?
#xは、7のフィボナッチ数ですか?
#xは、8のフィボナッチ数ですか?
#xは、9のフィボナッチ数ですか?
#xは、10のフィボナッチ数ですか?

このプログラムは再帰処理を行っています。

「// フィボナッチ数の定義」の下に書いてある記述が、フィボナッチ数を定義しながら、その中でフィボナッチ数自身に自己言及しています。

このプログラムをファイルsamples/fib.mrsにあるとすると実行結果は以下のようになります。


$ descartes murasaki samples/fib.mrs

#xは、1のフィボナッチ数ですか?
1は、1のフィボナッチ数です。

#xは、2のフィボナッチ数ですか?
1は、2のフィボナッチ数です。

#xは、3のフィボナッチ数ですか?
2は、3のフィボナッチ数です。

#xは、4のフィボナッチ数ですか?
3は、4のフィボナッチ数です。

#xは、5のフィボナッチ数ですか?
5は、5のフィボナッチ数です。

#xは、6のフィボナッチ数ですか?
8は、6のフィボナッチ数です。

#xは、7のフィボナッチ数ですか?
13は、7のフィボナッチ数です。

#xは、8のフィボナッチ数ですか?
21は、8のフィボナッチ数です。

#xは、9のフィボナッチ数ですか?
34は、9のフィボナッチ数です。

#xは、10のフィボナッチ数ですか?
55は、10のフィボナッチ数です。

このプログラムのような宣言によって、このような演算処理も可能です。

まるでprologですね。


--

--