スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
以後の更新内容の改善のために、是非ともご評価のほどよろしくお願いします!→

C言語で階乗計算をする。

先日はC言語で素数検出のプログラムを組みましたが、今回はもっと簡単な
階乗計算をさせてみようというのです。




関数の再帰的呼び出しでもやってみましたが、先に繰り返し構文から提示します。

C言語で階乗計算(1!?10!)(繰り返し構文による)



簡単な解説です。
4?10行目のfor構文は、『1!?10!』まで処理するためのループです。

6?8行目のfor構文は、階乗計算の処理そのものです。
変数numに元々入っている数値とiを掛け算する「乗算代入演算子」を使います。





続いて、関数の再帰的呼び出しを利用したものです。

 [2010.06.18追記]:以下に示す関数には欠点がありました。
(厳密には、"階乗の定義"に従っていないということ。)
詳しくは訂正版(コチラ)をご用意しましたので、よろしければご参照ください。^^;

C言語で階乗計算(1!?10!)(関数の再帰的呼び出し)



解説です。
まず、階乗計算を行う関数「fact()」を定義します。(階乗【factorial】に由来。)
引数が1なら1を返しますが、それ以外なら、『引数×fact(引数?1)』を評価します。
fact関数の中でfact関数を呼び出しています。関数内で自分自身を呼び出すことを
関数の再帰的呼び出しというようですね。
これを実行すると、最初に呼び出した関数の返り値が計算結果となるのです。
(説明があいまいでごめんなさい・・・^^;)

あとは、そのfact関数を使って階乗を求めていく・・・という形になっています。



PHPという言語でも求めてみましたのでコチラも参考に・・・。


 ※修正[2011.01.24]:main()関数の戻り値を設定しました。ご指摘に感謝します!! 
以後の更新内容の改善のために、是非ともご評価のほどよろしくお願いします!→

テーマ : C言語 /  ジャンル : コンピュータ

コメントの投稿

非公開コメント

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます
カテゴリー
ようこそ!
Author: Torasuke
Profile: 地元大学の情報系学部に息をひそめる二回生。
   SA SW


ブログ内検索
最近のコメント
オススメ
京都の大学生のラボブログ
Python,Java,Objective-C,GAE,Macなど
Python独習中の大学生のブログ


ltzz.info
ここの管理者さんには謁見済み!(えっ

 Use OpenOffice.org
無補償でも良いなら、MSOfficeよりOpenOfficeで十分です。

Mozilla Firefox ブラウザ無料ダウンロード
当サイトは、Firefoxというブラウザで動作確認しています。私は以前、IE派でしたが、一度乗り換えて慣れてしまうと、Firefoxのほうが便利だということを実感しました。

是非よろしくお願いします。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。