一、定义:函数自己调用自己,有先序递归和后序递归
#include <stdio.h> void text(int n) { if(n > 0) //终止条件 { n--; printf("n = %d\n", n); //先序递归,代码顺序执行 text(n);//函数递归,即自己调用自己 printf("n1 = %d\n", n);//后续递归,代码逆序执行 } } int main() { int i = 3; text(i); return 0; }
递归的过程分析
注:递归要有终止条件,即这里的
if(n > 0)
二、十进制转二进制
#include <stdio.h> void bin (int n) //十進制轉十六進制 { int i = n % 16; if (n > 0) { bin(n / 16); printf("%d", i); } } int main() { int i = 15; bin(i); return 0; }
三、斐波拉契数列:0,1,1,2,3,5,8.。。
·int fib(int n) { if(n == 0) return 0; if(n == 1) return 1; else { return fib (n - 1) + fib(n - 2); } } int main() { printf("%d\n",fib(3)); return 0; }