C/C++の宿題を片付けます 96代目at TECHC/C++の宿題を片付けます 96代目 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト29:デフォルトの名無しさん 07/09/22 15:26:13 1] 授業単元: データ構造 [2] 問題文: 階上n!(nは0以上の整数)は、以下のように再帰的に定義されている。 n!=n*(n-1) , 0!=1 この式を参考に、再起呼び出し用いて0以上の整数nを受け取りn!を返す 関数int Factorial(int n)を作り、n!を求めるプログラムを作成せよ。 また、再帰の動作がわかる表示を行い 表示を用いて再帰関数の呼び出される順序を説明せよ。 [3] 環境 [3.1] OS:UNIX [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C言語 [4] 期限: 2007年9月24日 [5] その他の制限:特にないです 再帰の動作を表示させないものは書けるのですが どうしても表示を用いて 再帰関数の呼び出される順序がうまくいきません。 どうがよろしくお願いします。 30:デフォルトの名無しさん 07/09/22 15:54:45 >>29 > 再帰の動作を表示させないものは書けるのですが 見せて 31:デフォルトの名無しさん 07/09/22 16:26:00 >>29 こんな感じか? #include <stdio.h> int indent; int f( int in ) { int i, ret; indent++; for( i = 0; i < indent; i++ ) printf( " " ); printf( "f( %d )\n", in ); if( in == 0 ) ret = 1; else ret = in * f( in - 1 ); for( i = 0; i < indent; i++ ) printf( " " ); printf( "return %d\n", ret ); indent--; return ret; } int main( void ) { int in = 9; indent = 0; printf( "%d! = %d\n", in, f( in ) ); return 0; } 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch