c语言求阶乘和的流程图_C语言:数据结构-栈与递归

栈的一个重要应用是在程序设计语言中实现递归。所谓递归,是指如果一个对象部分地包括它自己,或用它自己给自己定义,则称这个对象是递归的,或定义为在一个过程中直接或间接地调用自己,则称这个过程是递归的。在调用一个函数(程序)的过程中又直接或间接地调用该函数(程序)本身,称为函数的递归调用。一个递归的求解问题必然包含终止递归的条件,当满足一定条件时就终止向下递归,从而使问题得到解决。描述递归调用过程的算法称为递归算法。在递归算法中,需要根据递归条件直接或间接地调用算法本身,当满足终止条件时结束递归调用。

现实中有许多实际问题采用递归方法来解决,使用递归的方法编写程序将使许多复杂的问题大大简化。例如计算求n的阶乘问题,可以利用阶乘的递推公式n!=n*(n-1)!,对该问题进行分解,把计算n的阶乘问题化为等式右边涉及规模较小的同类问题(n-1)的阶乘的计算。

用递归函数求解正整数n的阶乘(n!)

设f(n)=n!,则递归函数f(n)可表示为:

052c30cfa0fd13b0d7f2c7d7c3ebe610.png

此处n=0为递归终止条件,使函数返回1;当n>0时实现递归调用,由n的值乘以f(n-1)的返回值求出f(n)的值。

上述递归函数用c语言描述为:

int f(int n){ if(n==0) r
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值