题目:

此处题目是以1-20的阶乘之和举例

方法一:使用一层for循环实现 代码简单快捷容易理解

代码示例如下:

#include<stdio.h>
int main()
{double a = 1, sum = 0;//因为最后值可能会超出int所能接收的范围 故用doubleint n, i;scanf("%d", &n);//注意scanf_s和scanf的使用场景for (i = 1; i <= n; i++){a = a*i;sum = sum + a;}printf("%lld", sum);//double的输入格式要对return 0;
}

运行结果如下:

方法二:使用两层for循环嵌套

代码示例如下:

//需要注意对于1-20阶乘结果已经超出了int能够接收的范围
//   故用double类型
//1.遍历获取每一个数字[1-20]
//2.对每一个数进行阶乘
//3.对每个数字的阶乘结果进行求和
int main()
{double total_sum = 0.0;for (int i = 1; i <= 20; i++)//i控制求和{//i=8  ---> 8*7*6*....*1double single_num = 1.0;for (int j = i; j > 0; j--){single_num *= j;//j控制阶乘}total_sum += single_num;}printf("%lf\n", total_sum);return 0;
}

运行结果如下:

方法三:函数递归实现

#include<stdio.h>
long int fac(unsigned int n)  //定义为long int 型,避免溢出
{long int f;if (n == 0) return;        //当n=0是,递归法到尽头,依次返回函数值。f = fac(n - 1) * n;return (f);               //返回最后一次函数值,即单次阶乘的最后结果
}int main()
{unsigned int n;long int s =0;int i;scanf_s("%d", &n);//此处注意scanf_s与scanf的使用场景for (i = 1; i <= n; i++)  s += fac(i);    //以循环控制阶乘的和。fac函数每一次的返回值作为s的自加值printf("%ld", s);return 0;
}
#include<iostream>
#include<cmath>double fac(double t)
{if (t == 1)return 1;elsereturn  t * fac(t - 1);
}int main()
{using namespace std;double i, n, sum = 0;cin >> n;if (n > 14)return 0;for (i = 1; i < n; i++){double b = fac(i);sum += b;}cout << "sum =" << sum << endl;printf("%lf\n", sum);return 0;
}

代码运行结果如下:

编者注:以上对本小题的代码编写的多种方法,欢迎大家收藏借鉴并转发;

以上代码仅供参考,如有问题欢迎大家在留言区批评指正;

版权所有,翻印必究,如有雷同纯属巧合,转载请注明出处。

By CRH380AJ2808 2022.04.26
————————————————

版权声明:本文为CSDN博主「CRH380AJ2808」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/JH13thpig/article/details/124361837

阶乘求和 C语言实现求阶乘之和 三种方法实现 先阶乘再累加相关推荐

  1. C语言求最大公约数三种方法详解

    C语言求最大公约数三种方法详解 题目要求 常用写法(穷举法) 辗转相减法 辗转相除法 main函数 整体代码 题目要求 运行最大公约数的常用算法,并进行程序的调式与测试. 常用写法(穷举法) 从两个数 ...

  2. 求最小公倍数的三种方法(C语言)

    求最小公倍数的三种方法 1.常规暴力求解法 2.辗转相除法 3.迭乘法 //1.常规暴力求解法 #include <stdio.h> int main() {int a = 0;int b ...

  3. java中隐函数求导法则_隐函数求导的三种方法

    this.p={ m:2, b:2, loftPermalink:'', id:'fks_085075084086088070081083074065081087082066093087080', b ...

  4. python求平方根的三种方法

    python求平方根的三种方法 题干描述 题目解答 题干描述 没啥好说的qwq,求根号下x,并舍弃小数部分,只保留整数 题目解答 方法一:不多bb,直接0.5次方(这应该是最没有营养的解法,面试官估计 ...

  5. c语言程序π,C语言求圆周率π(三种方法)

    题目1) 利用公式①计求π的近似值,要求累加到最后一项小于10^(-6)为止. 题目2) 根据公式②,用前100项之积计算π的值. 题目1)提供了一种解法,题目2)提供了两种解法,请看解析. 题目1) ...

  6. c语言求圆周率 . 4,C语言求圆周率π(三种方法)(4页)-原创力文档

    C语言求圆周率π(三种方法) 题目1) 利用公式①计求π的近似值,要求累加到最后一项小于10^(-6)为止.题目2) 根据公式②,用前100项之积计算π的值.题目1)提供了一种解法,题目2)提供了两种 ...

  7. C语言(求最小公倍数的3种方法)

    想要解开这题目首先要了解什么是最小公倍数 最小公倍数:是指能同时被a和b整除的最小正整数 例如:14 和 6  的最小公倍数有 42 84 126 最小的数就是最小公倍数 假设:a=6  b=18 那 ...

  8. C语言求幂的三种方法

    用三种方法求幂值 一. 暴力递归 直接对x乘y次 int result(int x,int y) {int num=1;for (int i=1; i<=y; i++) {num*=x;}ret ...

  9. C语言求最小公倍数的三种方法

    第一种方法:累加法求 思路是,两个数字,要求他们的最小公倍数,那么这个最小公倍数,至少不要比这两个要求的数小.我们首先判断出两个数中较大的一个,然后判断这个数是否是要求的两个数的最小公倍数.如果不是, ...

最新文章

  1. phpDocument(PHPDoc) 标签大全
  2. 在红帽中安装oracle,在红帽企业Linux 5.4中安装Oracle Database 10g
  3. JavaWeb课程复习资料(四)——创建Servlet
  4. Java并发编程—volatile关键字(保证变量的可见性、有序性机制)
  5. kotlin 和java 混编
  6. 快速入门系列之 Scala 语言 GitChat连接
  7. chrome 离线安装包下载
  8. OFFICE技术讲座:WP/SS文字渲染不开启的条件
  9. python3.5中文手册chm_python3官方帮助文档-python3.5.2官方chm参考手册-东坡下载
  10. 472. 连接词(每日一难phase2--day24)
  11. Excel将选中的筛选内容复制可见的筛选格中方法
  12. 计算机无法启动怎么重装系统,韩博士教你如何为系统崩溃无法开机的电脑重装系统...
  13. java ftps_如何基于FTP4J实现FTPS连接过程解析
  14. 不规则图形数格子的方法_最强大脑第四季不规则数独规则介绍 数独技巧口诀带图解析...
  15. 关于百度导航SDK没声音的一种解决办法
  16. 祛除体内湿气的最佳方法 713.html,祛除体内湿气七种有效泡水方法
  17. Print a rhombus (C++)
  18. JDO是什么意思?JDO使用实例
  19. vscode中前端vue项目详解_vs code 第一次创建前端项目 vuejs 从零开始
  20. MVC使用poi根据excel模板导出文件,并通过浏览器下载。

热门文章

  1. 毕业论文word排版常用小技巧——目录导航、参考文献引用……
  2. Vue项目中background-image属性设置方法
  3. 跳槽重回前公司?当初的离职原因没解决,早晚还得辞职
  4. Python 自动化测试怎么做?
  5. 【Python3.72官方文档】——深入 Python 流程控制
  6. 58 同城移动端 Passport SDK 的设计与技术细节
  7. Java--mysql 的数据类型对照(映射)表
  8. 一个仿知乎的问答论坛
  9. 6.redis-哨兵
  10. 免费的音频格式转换器有哪些?不妨试试这几种转写软件