第47课 递归函数分析
Posted wanmeishenghuo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第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 }
运行结果如下:
小结:
以上是关于第47课 递归函数分析的主要内容,如果未能解决你的问题,请参考以下文章