龙空技术网

C语言中函数的递归调用

一只爱阅读的程序猿 397

前言:

今天兄弟们对“c语言求阶乘函数并调用”大概比较注意,小伙伴们都需要了解一些“c语言求阶乘函数并调用”的相关内容。那么小编也在网络上收集了一些对于“c语言求阶乘函数并调用””的相关资讯,希望姐妹们能喜欢,小伙伴们快快来了解一下吧!

C语言中在使用函数时,能不使用递归调用就不要递归调用,因为递归如果用不好,就会造成死递归类似于死循环,会让整个程度死掉。不过函数的递归调用也可以用于一些特殊场景,比如存在子父级关系的数据中,比如文件夹处理,省市区县,菜单数据的处理等等。

本篇文章就来讲讲函数递归调用的一些简单用法,求和,求阶乘,计算斐波那契数列等等。

用法一:使用递归方法累计求和。示例代码如下,

#include <stdio.h>

int recursionFunction(int number);

int main() {

int rs = recursionFunction(100);

printf("rs=%d", rs);

return 0;

}

// 使用递归方法累计求和

int recursionFunction(int number) {

if (number == 1) {

return 1;

}

return number + recursionFunction(number - 1);

}

测试结果如下,

用法二:使用递归方法求阶乘。示例代码如下,

#include <stdio.h>

int recursionFunction(int number);

int main() {

int rs = recursionFunction(10);

printf("rs=%d", rs);

return 0;

}

// 使用递归方法累计求和

int recursionFunction(int number) {

if (number == 1) {

return 1;

}

return number * recursionFunction(number - 1);

}

测试结果如下,

用法三:使用递归方法求斐波那契数列。示例代码如下,

#include <stdio.h>

int recursionFunction(int number);

int main() {

int rs = recursionFunction(6);

printf("rs=%d", rs);

return 0;

}

int recursionFunction(int num) {

if (num == 1 || num == 2) {

// 前面两个数都是1

return 1;

}

// 从第三个数开始,等于前面两个数之和,示例 1 1 2 3 5 8 13

return recursionFunction(num - 1) + recursionFunction(num - 2);

}

测试结果1如下,

测试结果2如下,

标签: #c语言求阶乘函数并调用 #c语言递归调用函数