33,311
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
#include<cmath>
int fac(int t)
{
if (t==1)
return 1;
else
return t*fac(t-1);
}
int main()
{
using namespace std;
int i, n, sum = 0;
cin>>n;
if (n > 14)
return 0;
for(i=1;i < n;i++)
{
int b = fac(i);
sum += b;
}
cout<<"sum ="<<sum<<endl;
return 0;
}
递归改一下,可以不用变量i;
递归有有效范围,若唱过13数据会溢出;
int i,n,b, sum;
//楼主要主要把变量初始化。
i=n=b=sum=0;
int main()
{
int i, n, b;
cin >> n;
int sum = 0;//在这里初始化
for (i = 1; i < n; i++)//改成小于
{
//sum提出去进行初始化
int b = fac(i);
sum += b;
}
cout << "sum =" << sum << endl;
return 0;
}