• 締切済み

再帰を用いた場合の計算量

nの階乗を再帰呼び出しを用いて計算する以下のプログラムの計算量はいくらになるのでしょうか? 調べてみてもどこにも記述されていなくて困っています. int factorial(int n) {   if(n > 0)     return (n * factorial(n - 1));   else     return (1); } また,できれば求め方も教えていただけると嬉しいです.

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.4

別っちゃ別だけど同じっちゃ同じ>#3... って, わかっているとは思いますが. 「求め方は理解した」というなら, その「理解」に従って求めてみてください.

すると、全ての回答が全文表示されます。
  • asuncion
  • ベストアンサー率33% (2127/6290)
回答No.3

>#1さん >また出ましたね。回答が付きませんでしたか? 前の話は累乗で、今度の話は階乗です。別の話です。 >#2さん >プログラムの計算量とは何ですか? 計算量という言葉から推測して、 O(1)とかO(n)とかO(nlogn)とかO(n^2)とかO(n^3)とかO(2^n)とか、 そういうたぐいの話だと思います。 別の話でしたら、フォローしてください。>質問者さん

noname#95388
質問者

補足

わかりづらい質問で申し訳ございません. この方のおっしゃるとおり,計算量のオーダーがいくらになるのかという質問です. 前回の質問のプログラムでのオーダーの計算量の求め方は理解したのですが,今回の場合も同様に考えてO(n)でよいのでしょうか?

すると、全ての回答が全文表示されます。
  • mk48a
  • ベストアンサー率56% (1133/2007)
回答No.2

プログラムの計算量とは何ですか? nの階乗のプログラムでn回factorial()関数が呼び出されることになりますが、そういう意味では無いのですか?

すると、全ての回答が全文表示されます。
  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.1

また出ましたね。回答が付きませんでしたか? ちょっと質問の意味がよく分からないのですよね。 n>0のところをn>1にしたら結果は同じだけど呼出し が一回減る、とかそういう計算量ですか?

すると、全ての回答が全文表示されます。

関連するQ&A