标签:har 程序 clu abc block font auto isp lse
递归的数学思想:
递归函数:
递归函数设计技巧:
递归函数设计示例一:
递归版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\n", strlen_r("abc")); 18 printf("%d\n", 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\n", fac(1)); 24 printf("%d\n", fac(2)); 25 printf("%d\n", 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\n", 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 }
运行结果如下:
小结:
标签:har 程序 clu abc block font auto isp lse
原文地址:https://www.cnblogs.com/wanmeishenghuo/p/9563208.html