【手把手带你刷好题】—— 56.n的阶乘之和问题(递归)

举报
安然无虞 发表于 2022/05/27 00:38:49 2022/05/27
【摘要】 【前言】 今天是刷题打卡第56天! 加油吧亲们。 原题:1!+2!+3!+...+n!(递归) 首先先利用递归求解n!: 代码执行: //计算n的阶乘int fac(int n){ //找边界 if (n == 0 || n == 1) return 1; return n * fac(n - 1);//n...

【前言】

今天是刷题打卡第56天!

加油吧亲们。

原题:1!+2!+3!+...+n!(递归)

首先先利用递归求解n!:

代码执行:


  
  1. //计算n的阶乘
  2. int fac(int n)
  3. {
  4. //找边界
  5. if (n == 0 || n == 1)
  6. return 1;
  7. return n * fac(n - 1);//n-1的阶乘规模更小,是原问题的子问题
  8. }

那么计算1!+2!+3!+...+n!之和只需要加上一层循环即可:

代码执行:


  
  1. #include<stdio.h>
  2. //计算n的阶乘
  3. int fac(int n)
  4. {
  5. //找边界
  6. if (n == 0 || n == 1)
  7. return 1;
  8. return n * fac(n - 1);
  9. }
  10. int main()
  11. {
  12. int n = 0;
  13. scanf("%d", &n);
  14. int i = 0;
  15. int sum = 0;
  16. for (i = 1; i <= n; i++)
  17. {
  18. sum += fac(i);
  19. }
  20. printf("%d\n",sum);
  21. return 0;
  22. }

结语

今天是刷题打卡第56天!

加油吧少年。

文章来源: bit-runout.blog.csdn.net,作者:安然无虞,版权归原作者所有,如需转载,请联系作者。

原文链接:bit-runout.blog.csdn.net/article/details/121943464

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。