习题10-2 递归求阶乘和
浙大版《C语言程序设计(第3版)》题目集参考代码总集
本题要求实现一个计算非负整数阶乘的简单函数,并利用该函数求 1!+2!+3!+…+n! 的值。
函数接口定义:
double fact( int n );
double factsum( int n );
函数fact应返回n的阶乘,建议用递归实现。函数factsum应返回 1!+2!+…+n! 的值。题目保证输入输出在双精度范围内。
裁判测试程序样例:
输入样例1:
10
结尾无空行
输出样例1:
fact(10) = 3628800
sum = 4037913
结尾无空行
输入样例2:
0
输出样例2:
fact(0) = 1
sum = 0
解答一:
double fact( int n ){
int result=0;
if(n<=1) result=1;
if(n>1) result=fact(n-1)*n;
return result;
}
double factsum( int n ){
int result=0, i ;
if(n==0) result=0;
if(n>=1){
for(i=1;i<=n;i++){
result+=fact(i);
}
}
return result;
}
版权声明:本文为m0_56566228原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。