这个函数要求的是1!+2!+3!+……+n!的值,要求用函数递归来做。。。。。疑惑在最下面的lj(inti)函数那里,不知道错在哪了。。。。源代码如下:#includeusingnamespacest...
这个函数要求的是 1!+2!+3!+……+n!的值,要求用函数递归来做。。。。。
疑惑在最下面的lj(int i)函数那里,不知道错在哪了。。。。
源代码如下:
#include
using namespace std;
long lj(int i); // lj(int i),累加函数
long lc(int j); //lc(int j),累乘函数
int main()
{
int n;
do
{
cout<
cin>>n;
if(n==0) break;
lj(n);
cout<
}while(n!=0);
return 0;
}
long lj(int i)
{
int sum1=0;
if(i==0) sum1=0; //为什么当i==0后,sum1被赋值为1,而底下的return sum1不会返回1.
else
sum1=lj(i-1)+lc(i);
return sum1;
}
long lc(int j)
{
int sum2=1;
if(j==1) return sum2;
sum2=lc(j-1)*j;
}
/*为什么将函数 long lj(int i)改成以下代码就出现错误(编译没有错误,改成这个后,得出的值就只有n!了)?
long lj(int i)
{
int sum1=0;
if(i==0) return sum1;
sum1=lj(i-1)+lc(i);
}
*/
展开