C言語なら俺に聞け(入門編)Part 114at TECH
C言語なら俺に聞け(入門編)Part 114 - 暇つぶし2ch182:デフォルトの名無しさん
13/04/27 23:06:11.23
>>180
printfとかしてりゃ出力内容は変わるわな
そういう事してなけりゃ何も変わらない

再帰関数で戻り値の型がvoidなのは
そういう副作用を伴う場合しか意味が無い

階乗を求める関数を考えてみる

unsigned int factorial(unsigned int n)
{
 if (n <= 1) {
  return 1;
 } else {
  unsigned int tmp = factorial(n - 1);
  return n * tmp;
 }
}

factorial の再帰の前後で何か状態が変わるかと言うと、全く変わらない
状態は変わらないけど、新たに戻り値が得られる
戻り値は関数への引数が変われば異なる値になる

この関数は数式の
 0! = 1
 1! = 1
 n! = n * (n-1)!
を素直にそのまま関数にしたもの
数式が理解できるならCのコードも理解できなければおかしい事に気付くこと


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch