c++求解一道

来源:百度知道 编辑:UC知道 时间:2024/05/29 12:17:53
编程计算前n个数的阶乘和,要求采用递归算法
的公式如下:

程序运行结果为:
输入一个正数:5
5 之前数的阶乘和是:154

//5之前的阶乘为153 如果算上0的阶乘才是154
#include<iostream.h>
long fac(long n)
{
if(n<0)
cout<<"data error";
else if(n==0||n==1)
n=1;
else
n=fac(n-1)*n;
return n;
}
main()
{
long a=0,n,i;
cin>>n;
for(i=1;i<=n;i++) //算上0的阶乘的话把i=1改为i=0
a=a+fac(i);
cout<<a<<endl;
}

int f(n){
if(n==0)
return 1;
else
return
f(n-1)+g(n);
}
int g(n){
{
if(n==0)
return 1;
else
return g(n-1)*n;
}