调用函数多少次才能得到阶乘

时间:2014-08-19 06:12:52

标签: algorithm

如果n为8且fact(n)是用于查找数字的阶乘的递归实现,则会调用fact(n)多少次?

1 个答案:

答案 0 :(得分:1)

我假设你的程序看起来像是

public static int fact(int n) {
   if (n == 0 || n == 1) {
       return 1;
   } else {
       return n * fact(n - 1);
   }
}

让我们看看......

  1. n = 8 fact(n)被调用将进入else和
  2. n = 7 fact(n)将再次调用go to else
  3. n = 6 fact(n)将被调用
  4. ,n = 5
  5. ,n = 4
  6. ,n = 3
  7. ,n = 2
  8. ,n = 1
  9. 所以,这里它会被调用8次。