【課題4−11 再帰的関数】 次のプログラムは,再帰的呼び出しを用いて整数の階乗を求めるものである.このプログラムを参考に,再帰を使って1から100までの合計を求めるプログラムを作成せよ. #include long fact(int n); int main(void) { int no = 3; printf("%d = %d¥n", no, fact(no)); return 0; } /* 階乗を求める */ /* 引数: n:整数 /* 返値: 階乗の結果 */ long fact(int n) { long f; if (n > 0) // nが0より大なら再帰呼び出し f = n * fact(n-1); else // nが0ならそれ以上再帰呼び出しせず1を返す. f = 1; return f; } 【実行結果】 3! = 6 【解説とヒント】 再帰を使うよりもループで処理した方が簡単で効率がよいが,ここではあえて再帰の構造を理解する目的で用いている.