zoukankan      html  css  js  c++  java
  • 字符串逆序输出--递归

      说到递归,很容易想到n!,斐波那契数列(数兔子问题),当然这些都是很好理解的问题。个人认为,最能反映递归实质的是汉诺塔和字符串逆向输出问题。汉诺塔问题只需要思考一步,其他难题就交给计算机吧,这很好的证明了递归就是懒人专用算法。仅凭这一点,就足以掩盖递归效率低下的缺陷。我们都知道,递归就是函数调用自身的过程。在c语言中,函数调用自身和调用其他函数,没有一点区别。都是保存现场,函数调用,恢复现场的过程,这是通俗的说法,用我们专业的术语来说,递归的实质就是入栈和出栈的过程。解释到这里,用递归实现字符串逆序输出问题就很好解决了。直接上代码,理解这个问题,抓住整个入栈出栈的本质就好。

    code:

      4  *       Filename:  22.c
      5  *
      6  *    Description:  
      7  *
      8  *        Version:  1.0
      9  *        Created:  2014年12月29日 09时02分57秒
     10  *       Revision:  none
     11  *       Compiler:  gcc
     12  *
     13  *         Author:  3me (), 
     14  *   Organization:  
     15  *
     16  * =====================================================================================
     17  */
     18 #include <stdlib.h>
     19 #include <stdio.h>
     20 /* 
     21  * ===  FUNCTION  ======================================================================
     22  *         Name:  print
     23  *  Description:  
     24  * =====================================================================================
     25  */
     26     void
     27 print (  )
     28 {
     29     int c;
     30     if ( (c = getchar()) != -1 )
     31         print();
     32     else
     33         printf("
    ");
     34     if ( c != -1 )
     35         printf("%c", c);
     36     return;
     37 }   /* -----  end of function print  ----- */
     38 /* 
     39  * ===  FUNCTION  ======================================================================
     40  *         Name:  main
     41  *  Description:  
     42  * =====================================================================================
     43  */
     44     int
     45 main ( int argc, char *argv[] )
     46 {
     47     print();
     48 
     49     return EXIT_SUCCESS;
     50 }       /* ----------  end of function main  ---------- */
     51 
                        
  • 相关阅读:
    react 高阶组件之小学版
    react diff 极简版
    react 16更新
    react 组件的生命周期 超简版
    JS继承(简单理解版)
    Vue Virtual Dom 和 Diff原理(面试必备) 极简版
    Vue数据双向绑定(面试必备) 极简版
    Vue生命周期的执行过程(面试必备) 极简版
    多个Portal for ArcGIS 间的协作实操
    Portal的安全代理(反向代理出口)配置架构
  • 原文地址:https://www.cnblogs.com/3me-linux/p/4191046.html
Copyright © 2011-2022 走看看