
(c++)用递归方法求n的阶乘
递归是一种典型的算法,许多问题既可以用非递归的方法,也可以用递归的方法处理。在实现递归时,在时间和空间上的开销比较大,但符合人们思路,程序容易理解,人们可以不去考虑实现递归的过程细节,只需写出递归公式和递归结束条件(即边界条件),即可很容易写出递归函数。由于计算机的性能提高很快,人们首先考虑的往往不是效率问题,而是程序的可读性问题。因此,许多人优先考虑用递归方式编程。#include <io
递归是一种典型的算法,许多问题既可以用非递归的方法,也可以用递归的方法处理。在实现递归时,在时间和空间上的开销比较大,但符合人们思路,程序容易理解,人们可以不去考虑实现递归的过程细节,只需写出递归公式和递归结束条件(即边界条件),即可很容易写出递归函数。由于计算机的性能提高很快,人们首先考虑的往往不是效率问题,而是程序的可读性问题。因此,许多人优先考虑用递归方式编程。
#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;
}
更多推荐
所有评论(0)