C语言学习15:递归

张建 lol

递归

递归指: 函数中使用函数自身的方法

C 语言中支持递归,即 一个函数可以调用自身,在使用递归时,程序员要注意函数的 退出条件,否则会进入死循环

数的阶乘

1
2
3
4
5
6
7
8
9
10
11
12
13
14
double factorial(unsigned int i){
if (i<=1){
return 1;
}
return i * factorial(i-1);
}

int main(int argc, const char * argv[]) {

int i = 5;
printf("%d 的阶乘是:%f\n",i,factorial(i));

return 0;
}

当上面的代码被 编译和运行 时,产生的结果:

1
2
5 的阶乘是:120.000000
Program ended with exit code: 0

斐波那契额数列

当前数是前两个数之和

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

int fibonaci(int i){
if (i == 0) {
return 0;
}
if (i == 1) {
return 1;
}
return fibonaci(i-1) + fibonaci(i-2);
}

int main(int argc, const char * argv[]) {
for (int i = 0; i < 10; i++){
printf("%d\t\n", fibonaci(i));
}

return 0;
}

当上面的代码 编译和运行时,产生的结果:

1
2
3
4
5
6
7
8
9
10
11
0	
1
1
2
3
5
8
13
21
34
Program ended with exit code: 0
  • Post title:C语言学习15:递归
  • Post author:张建
  • Create time:2023-02-18 13:58:13
  • Post link:https://redefine.ohevan.com/2023/02/18/C学习/C语言学习15:递归 2/
  • Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.
On this page
C语言学习15:递归