一个关于c++求阶乘和的问题

来源:百度知道 编辑:UC知道 时间:2024/07/05 09:20:43
本人现在刚开始学习c++;今天遇到一个求n!并求和的问题;因为是菜鸟,写了个不对,请各位高手指点:在这先谢谢各位了!!!
#include <iostream>
using std::cin;
using std::cout;
using std::endl;

int ff(int n)
{
int f;
if(n==0||n==1)f=1;
else f=ff(n-1)*n;
return(f);
}
void main()
{
int n;
int i=1;
int sum=0;
cout<<"请输入一个要求的数:"<<endl;
cin>>n;
for(i=1;i!=n;i++)
sum+=ff(i);
cout<<"阶乘的和是:"<<sum<<endl;
}

#include <iostream>
using std::cin;
using std::cout;
using std::endl;

int ff(int n)
{
int f;
if(n==0||n==1)f=1;
else f=ff(n-1)*n;
return(f);
}
void main()
{
int n;
int i=1;
int sum=0;
cout<<"请输入一个要求的数:"<<endl;
cin>>n;
for(i=n;i>0;i--)//在这个地方改一下
sum+=ff(i);
cout<<"阶乘的和是:"<<sum<<endl;
}

#include <iostream>

using namespace std;

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

void main()
{

int n;
int sum=0;
cout<<"请输入一个要求的数:";
cin>>n;
for(int i=1;i<=n;i++) {
cout<<ff(i)<<endl;
sum += ff(i);
}

cout<<"阶乘的和是:"<<sum<<endl;
}

阶乘和可能超出内置类型的存储范围,需要自己定义一个大数类型