zoukankan      html  css  js  c++  java
  • 第47课 递归函数分析

    递归的数学思想:

    递归函数:

    递归函数设计技巧:

    递归函数设计示例一:

    递归版strlen:

     1 #include <stdio.h>
     2 
     3 int strlen_r(const char* s)
     4 {
     5     if( *s )
     6     {
     7         return 1 + strlen_r(s+1);
     8     }
     9     else
    10     {
    11         return 0;
    12     }
    13 }
    14 
    15 int main()
    16 {
    17     printf("%d
    ", strlen_r("abc"));
    18     printf("%d
    ", strlen_r(""));
    19     
    20     return 0;
    21 }

    运行结果如下:

    递归函数示例二:

    示例如下:

     1 #include <stdio.h>
     2 
     3 int fac(int n)
     4 {
     5     if( n == 1 )
     6     {
     7         return 1;
     8     }
     9     else if( n == 2 )
    10     {
    11         return 1;
    12     }
    13     else
    14     {
    15         return fac(n-1) + fac(n-2);
    16     }
    17     
    18     return -1;
    19 }
    20 
    21 int main()
    22 {
    23     printf("%d
    ", fac(1));
    24     printf("%d
    ", fac(2));
    25     printf("%d
    ", fac(9));
    26     
    27     return 0;
    28 }

    运行结果如下:

    递归函数示例三:

     程序如下:

     1 #include <stdio.h>
     2 
     3 void han_move(int n, char a, char b, char c)
     4 {
     5     if( n == 1 )
     6     {
     7         printf("%c --> %c
    ", a, c);
     8     }
     9     else
    10     {
    11         han_move(n-1, a, c, b);
    12         han_move(1, a, b, c);
    13         han_move(n-1, b, a, c);
    14     }
    15 }
    16 
    17 int main()
    18 {
    19     han_move(3, 'A', 'B', 'C');
    20     
    21     return 0;
    22 }

     运行结果如下:

    小结:

  • 相关阅读:
    centos7&redhat7修改密码
    memcached安裝部署文檔
    cronolog安装部署文檔
    ftp安裝部署文檔
    cacti安裝部署文檔
    php安裝部署文檔
    MYSQL-5.5安装部署文档
    MySQL5.1安裝部署文檔
    nginx進階
    IO进程疏漏
  • 原文地址:https://www.cnblogs.com/wanmeishenghuo/p/9563208.html
Copyright © 2011-2022 走看看