黑马程序员技术交流社区

标题: 使用递归,解决下面的问题,希望可以详细的讲解,谢谢 [打印本页]

作者: Jony.Lee    时间: 2014-4-16 15:20
标题: 使用递归,解决下面的问题,希望可以详细的讲解,谢谢
/*
题目:
编写一个函数int pieAdd(int n),计算1!+2!+3!+……+n!的值(n>=1)。
比如pieAdd(3)的返回值是1! + 2! + 3! = 1 + 1*2 + 1*2*3 = 9
*/
作者: 周宇华    时间: 2014-4-16 15:40
上代码,有注释:

  1. #include <stdio.h>

  2. // 求n的阶乘
  3. int pie(int n)
  4. {
  5.     // 1和0的阶乘就=1
  6.     if (n == 1 || n == 0) return 1;
  7.     // n的阶乘=n-1的阶乘*n
  8.     return pie(n - 1) * n;
  9. }

  10. // 求n的阶乘和
  11. int pieAdd(int n)
  12. {
  13.     // 1和0的阶乘和就是自身的阶乘
  14.     if (n == 1 || n == 0) return pie(n);
  15.     // n的阶乘和= n-1的阶乘和+n的阶乘
  16.     return pieAdd(n - 1) + pie(n);
  17. }

  18. int main()
  19. {
  20.     int n = 3;
  21.     printf("%d的阶乘和=%d\n", n, pieAdd(n));
  22. }
复制代码

作者: 愿我能    时间: 2014-4-16 15:44
本帖最后由 愿我能 于 2014-4-16 15:48 编辑
  1. 第一次插代码原来不能在代码框外修改,,好惨
  2. 看到楼上已经发好了,我也就不发了,楼上的好完美
复制代码


作者: Jony.Lee    时间: 2014-4-16 15:54
周宇华 发表于 2014-4-16 15:40
上代码,有注释:

太感谢了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2