当前位置:   article > 正文

递归求阶乘和_调用fact()算1!+2!++n!

调用fact()算1!+2!++n!

  1. double fact(int n)
  2. {
  3. if (n <= 1)//<=
  4. return 1;
  5. return n * fact(n - 1);
  6. }
  7. double factsum(int n)
  8. {
  9. double sum = 0;
  10. int i = 0;
  11. for (i = 1; i <= n; i++)
  12. {
  13. sum += fact(i);
  14. }
  15. return sum;
  16. }

本题要求实现一个计算非负整数阶乘的简单函数,并利用该函数求 1!+2!+3!+...+n! 的值。

函数接口定义:

 

double fact( int n ); double factsum( int n );

函数fact应返回n的阶乘,建议用递归实现。函数factsum应返回 1!+2!+...+n! 的值。题目保证输入输出在双精度范围内。

裁判测试程序样例:

 

#include <stdio.h> double fact( int n ); double factsum( int n ); int main() { int n; scanf("%d",&n); printf("fact(%d) = %.0f\n", n, fact(n)); printf("sum = %.0f\n", factsum(n)); return 0; } /* 你的代码将被嵌在这里 */

输入样例1:

10

输出样例1:

  1. fact(10) = 3628800
  2. sum = 4037913

输入样例2:

0

输出样例2:

  1. fact(0) = 1
  2. sum = 0
本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号