黑马程序员技术交流社区

标题: 黑马程序员关于递归问题 [打印本页]

作者: 抱0抱    时间: 2014-6-16 09:54
标题: 黑马程序员关于递归问题
最近学习递归,很不理解呀!有没有大神能够加以指导下!我指导递归是自己调用自己,然后呢??
作者: 知识改变人生    时间: 2015-4-17 21:52
递归 这个知识 我也是 模糊的懂点 让我说 我也说不出来  你看看书上的代码 自己多练练
作者: yangdingzhi    时间: 2015-5-6 21:41
自学吗?
作者: 何志祥    时间: 2015-5-10 11:41
怎么说呢,我觉得它特像高中学的一个证明方法——反证法。  从一开始我需要知道n-1的值就需要知道n-2的值,最后推到我们最开始知道的值,然后反回去~~
作者: 陈刘科    时间: 2015-5-13 18:29
还必须有一个明确的返回值。。。
作者: gamyc    时间: 2015-5-13 23:29
我理解递归其实是对面向过程的封装,比如算1!+2!+3!+4!+……+n!这道题:
  1. #include <stdio.h>

  2. int jieCheng(int j)
  3. {
  4.         if (j == 1) return 1;
  5.         else return jieCheng(j-1) * j;
  6. }

  7. int main()
  8. {
  9.         int n, sum;
  10.         scanf("%d",&n);
  11.         sum = 1;
  12.         printf("1!");
  13.         for (int i = 2; i <= n; i++)
  14.         {
  15.                 sum = sum + jieCheng(i);
  16.                 printf("+%d!",i);       
  17.         }
  18.        
  19.         printf("=%d\n", sum);
  20. }
复制代码


(n-1)!用循环体内的变量累乘,得出结果了,那么n!相当于在(n-1)!的基础上再乘以一个n,(n-1)!就被封装成一次调用函数的结果了,就成了递归中的一环。

其实不要考虑是否是函数自己调自己,只要考虑需要用哪个函数来完成下一步即可,不管是自己调自己,还是调用其他函数,都是一样的思路。
作者: 914360849    时间: 2015-5-24 18:42
帖子有代码,看了就理解了;多写几个需求就理解了
作者: 陈刘科    时间: 2015-5-24 21:14
递归最后都有一个固定的值
作者: baby14    时间: 2018-8-2 07:29
递归是啥子




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