应聘网站运营建设面试,网站制作的电话,兰州市建设工程质量监督站网站,网络推广与营销递归简单来说就是函数自己调用自己。
特点#xff1a;一般代码比较简洁#xff0c;没有出口。
例子1#xff1a;用一个函数计算阶乘
#includestdio.h//不用递归
int fac(int n)
{int val 1;for (int i 1; i n;i){val * i;}return val;
}//用递归
int fac1(…递归简单来说就是函数自己调用自己。
特点一般代码比较简洁没有出口。
例子1用一个函数计算阶乘
#includestdio.h//不用递归
int fac(int n)
{int val 1;for (int i 1; i n;i){val * i;}return val;
}//用递归
int fac1(int n)
{if (n 1){return 1;}return n * fac1(n - 1);
}int main()
{printf(%d\n, fac(5));printf(%d\n, fac1(5));return 0;
}
例子2斐波那契值
#includestdio.h//1 2 3 4 5 6 7 8 从第三个数开始它的值等于它前两项的和
//1 1 2 3 5 8 13 21
//用递归
int fibonacci(int n)
{if (n 1 || 2 n){return 1;}return fibonacci(n - 2) fibonacci(n - 1);
}//循环法
int fibo(int n)
{if (1 n || 2 n){return 1;}int v1 1;int v2 1;int v3;for (int i3;in;i){v3 v1 v2;v1 v2;v2 v3;}return v3;
}int main()
{printf(%d\n, fibo(40));printf(%d\n, fibonacci(40));return 0;
}
例子3倒序打印
#includestdio.hvoid print(char* str)//abcd dcba倒序打印
{if (*str \0){return;}print(str 1); //printf(%c, *str);此为正打印printf(%c, *str); //print(str 1); abcd abcd
}int main()
{print(abcd);return 0;
}