阶乘求和 C语言实现求阶乘之和 三种方法实现 先阶乘再累加
题目:
此处题目是以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语言实现求阶乘之和 三种方法实现 先阶乘再累加相关推荐
- C语言求最大公约数三种方法详解
C语言求最大公约数三种方法详解 题目要求 常用写法(穷举法) 辗转相减法 辗转相除法 main函数 整体代码 题目要求 运行最大公约数的常用算法,并进行程序的调式与测试. 常用写法(穷举法) 从两个数 ...
- 求最小公倍数的三种方法(C语言)
求最小公倍数的三种方法 1.常规暴力求解法 2.辗转相除法 3.迭乘法 //1.常规暴力求解法 #include <stdio.h> int main() {int a = 0;int b ...
- java中隐函数求导法则_隐函数求导的三种方法
this.p={ m:2, b:2, loftPermalink:'', id:'fks_085075084086088070081083074065081087082066093087080', b ...
- python求平方根的三种方法
python求平方根的三种方法 题干描述 题目解答 题干描述 没啥好说的qwq,求根号下x,并舍弃小数部分,只保留整数 题目解答 方法一:不多bb,直接0.5次方(这应该是最没有营养的解法,面试官估计 ...
- c语言程序π,C语言求圆周率π(三种方法)
题目1) 利用公式①计求π的近似值,要求累加到最后一项小于10^(-6)为止. 题目2) 根据公式②,用前100项之积计算π的值. 题目1)提供了一种解法,题目2)提供了两种解法,请看解析. 题目1) ...
- c语言求圆周率 . 4,C语言求圆周率π(三种方法)(4页)-原创力文档
C语言求圆周率π(三种方法) 题目1) 利用公式①计求π的近似值,要求累加到最后一项小于10^(-6)为止.题目2) 根据公式②,用前100项之积计算π的值.题目1)提供了一种解法,题目2)提供了两种 ...
- C语言(求最小公倍数的3种方法)
想要解开这题目首先要了解什么是最小公倍数 最小公倍数:是指能同时被a和b整除的最小正整数 例如:14 和 6 的最小公倍数有 42 84 126 最小的数就是最小公倍数 假设:a=6 b=18 那 ...
- C语言求幂的三种方法
用三种方法求幂值 一. 暴力递归 直接对x乘y次 int result(int x,int y) {int num=1;for (int i=1; i<=y; i++) {num*=x;}ret ...
- C语言求最小公倍数的三种方法
第一种方法:累加法求 思路是,两个数字,要求他们的最小公倍数,那么这个最小公倍数,至少不要比这两个要求的数小.我们首先判断出两个数中较大的一个,然后判断这个数是否是要求的两个数的最小公倍数.如果不是, ...
最新文章
- phpDocument(PHPDoc) 标签大全
- 在红帽中安装oracle,在红帽企业Linux 5.4中安装Oracle Database 10g
- JavaWeb课程复习资料(四)——创建Servlet
- Java并发编程—volatile关键字(保证变量的可见性、有序性机制)
- kotlin 和java 混编
- 快速入门系列之 Scala 语言 GitChat连接
- chrome 离线安装包下载
- OFFICE技术讲座:WP/SS文字渲染不开启的条件
- python3.5中文手册chm_python3官方帮助文档-python3.5.2官方chm参考手册-东坡下载
- 472. 连接词(每日一难phase2--day24)
- Excel将选中的筛选内容复制可见的筛选格中方法
- 计算机无法启动怎么重装系统,韩博士教你如何为系统崩溃无法开机的电脑重装系统...
- java ftps_如何基于FTP4J实现FTPS连接过程解析
- 不规则图形数格子的方法_最强大脑第四季不规则数独规则介绍 数独技巧口诀带图解析...
- 关于百度导航SDK没声音的一种解决办法
- 祛除体内湿气的最佳方法 713.html,祛除体内湿气七种有效泡水方法
- Print a rhombus (C++)
- JDO是什么意思?JDO使用实例
- vscode中前端vue项目详解_vs code 第一次创建前端项目 vuejs 从零开始
- MVC使用poi根据excel模板导出文件,并通过浏览器下载。