33,311
社区成员
发帖
与我相关
我的任务
分享
#pragma warning(disable:4996) //开头加这句或项目、属性、配置属性、C/C++、预处理器、预处理器定义中添加“_CRT_SECURE_NO_WARNINGS”
#include <stdio.h>
void List(int n) {
if (n<=1) {
printf("%d ",1);
return;
}
List(n-1);
printf("%d ",n);
}
int main() {
int N;
scanf("%d",&N);
List(N);
return 0;
}
“给定一个小点的输入,完整单步跟踪(同时按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史)一遍。”是理解递归函数工作原理的不二法门!
递归函数关注以下几个因素
·退出条件
·参数有哪些
·返回值是什么
·局部变量有哪些
·全局变量有哪些
·何时输出
·会不会导致堆栈溢出