(c++)用递归方法求n的阶乘

本文介绍了一种典型算法——递归,并通过一个计算阶乘的例子详细解释了递归的基本原理及其实现过程。文章展示了如何定义递归公式和递归结束条件,以及如何处理递归过程中可能出现的错误情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

递归是一种典型的算法,许多问题既可以用非递归的方法,也可以用递归的方法处理。在实现递归时,在时间和空间上的开销比较大,但符合人们思路,程序容易理解,人们可以不去考虑实现递归的过程细节,只需写出递归公式和递归结束条件(即边界条件),即可很容易写出递归函数。由于计算机的性能提高很快,人们首先考虑的往往不是效率问题,而是程序的可读性问题。因此,许多人优先考虑用递归方式编程。

#include <iostream>
using namespace std;
long fac(int n)//递归函数 
{
    long f;
    if(n<0)
    {cout<<"data error!"<<endl;//如果输入负数,报错并以-1作为返回值。
    f=-1; }
    else 
      if(n==0||n==1)
    f=1;
      else 
      f=fac(n-1)*n;
      return f;
}   
int main()
{
    int n;
    long f,y;
    cout<<"please input an integer;";
    cin>>n;
    y=fac(n);
    cout<<n<<"!="<<y<<endl;
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值