Bootstrap

用python递归函数计算1!+3!+n!_用函数递归求1!+2!+3!……+n! 的值的小问题

这个函数要求的是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);

}

*/

展开

;