博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
递归的理解
阅读量:6581 次
发布时间:2019-06-24

本文共 518 字,大约阅读时间需要 1 分钟。

递归

1.阶乘f(n) = n!
2.公式

f(0) = 1;f(n) = f(n-1)*n  (n>=1)

3.代码

对应的程序为

#include 
#include
#include
int f(int n){ return n == 0?1:f(n-1)*n;}int main(){ printf("%d\n",f(3)); getch(); return 0;}

自己调用自己就是递归,但是要有一个出口,让程序走出递归。

在C语言中,调用自己和调用其他函数并没有任何本质区别,都是建立新栈帧。
4.比喻
皇帝(拥有main函数的栈帧):大臣,你给我算一下f(3)。
大臣(拥有f(3)的栈帧):知府,你给我算一下f(2)。
知府(拥有f(2)的栈帧):县令,你给我算一下f(1)。
县令(拥有f(1)的栈帧):师爷,你给我算一下f(0)。
师爷(拥有f(0)的栈帧):回老爷,f(0)=1。
县令:会知府大人,f(1)=1。
知府:回大人,f(2)=2。
大臣:回皇上 ,f(3)= 6。

转载地址:http://kjnno.baihongyu.com/

你可能感兴趣的文章
移动前端不得不了解的html5 head 头标签
查看>>
Pollard_rho 因数分解
查看>>
android自带的浏览器如何下载apk包
查看>>
POJ 2001 Shortest Prefixes(字典树基础)
查看>>
必做作业2:视频剪辑软件调研
查看>>
常见问题
查看>>
alignedReID: surpassing human-level performance in person re-identification (paper reading)
查看>>
XMLHTTP下open问题
查看>>
[Cocoa][译]苹果 Cocoa 编码规范中文版
查看>>
top指令
查看>>
Oracle Grid,ASM,Database on Redhat 7.5
查看>>
SaltStack其他常用的状态模块和方法
查看>>
JSDOM对象控制HTML元素
查看>>
1、Python基本对象类型----数字
查看>>
作为UIApplication单例对象的方法 openURL方法的变化
查看>>
电信计费业务:预后融合之财务列收
查看>>
数据库一
查看>>
拓扑排序 - 确定比赛名次
查看>>
UVa10405
查看>>
POJ 1065 Wooden Sticks
查看>>