C语言|函数的递归调用

函数的递归调用 (逐层分解,逐层合并)

自己调用自己,必须要知道什么时候停止调用,不然会造成电脑死机。

【知识点】

1 函数调用是通过栈实现的。

多个函数嵌套调用时,会按照先调用后返回的原则进行返回。

2 函数递归必须满足的两个条件:

i-要有递归公式;

对问题的分解,把大问题拆解成最小问题。

ii-要有终止条件。

得到最小事件的解,让递归停下来。

3-递归的优缺点

递归的优点:简化程序设计,结构简洁清晰,容易编程,可读性强,容易理解。

递归能把复杂问题,分解为更简单的步骤,反应出问题的本质。

递归的缺点:速度慢,运行效率低,对存储空间的占用比较多。

【代码分析】

1 自定义Function函数,在程序开头放函数声明,主函数调用Function函数。

2 main()函数,定义变量num,通过键盘输入数字,直接调用Function()函数。

3 Function()函数,用if语句判断num大小,Function(num-1); 实现递归调用。

【程序代码】

include <stdio.h>

void Function(int num); // 函数声明

int main(void)

{

int num;

printf("想输出几个不愧是小新少爷!:");

scanf("%d", &num);

Function(num);

return 0;

}

void Function(int num)

{

if(num>0)

{

printf("不愧是小新少爷!\n");

Function(num-1);

}

else

{

return ;

}

}

相关推荐
gopyer2 小时前
180课时吃透Go语言游戏后端开发6:Go语言的循环语句
开发语言·游戏·golang·循环语句
楼田莉子4 小时前
Qt开发学习——QtCreator深度介绍/程序运行/开发规范/对象树
开发语言·前端·c++·qt·学习
韩立学长5 小时前
【开题答辩实录分享】以《基于python的奶茶店分布数据分析与可视化》为例进行答辩实录分享
开发语言·python·数据分析
天若有情6735 小时前
C++空值初始化利器:empty.h使用指南
开发语言·c++
远远远远子5 小时前
类与对象 --1
开发语言·c++·算法
无敌最俊朗@6 小时前
C/C++ 关键关键字面试指南 (const, static, volatile, explicit)
c语言·开发语言·c++·面试
2401_831501736 小时前
Python学习之day03学习(文件和异常)
开发语言·python·学习
酷~6 小时前
C语言模拟面向对象编程方法之多态
c语言·开发语言
hui函数6 小时前
python全栈(基础篇)——day03:后端内容(字符串格式化+简单数据类型转换+进制的转换+运算符+实战演示+每日一题)
开发语言·后端·python·全栈
寻星探路6 小时前
Java EE初阶启程记09---多线程案例(2)
java·开发语言·java-ee