求1+2!+3!+…+20!的和

简介: 求1+2!+3!+…+20!的和

下面我将分别用C语言和Python来编写计算1+2!+3!+...+20!的和的程序。


C语言版本


C语言中没有直接的阶乘函数,所以我们需要自己编写一个计算阶乘的函数。


c复制代码
 #include <stdio.h>  
 
   
 
 // 计算阶乘的函数  
 
 long long factorial(int n) {  
 
     long long result = 1;  
 
     for (int i = 2; i <= n; i++) {  
 
         result *= i;  
 
     }  
 
     return result;  
 
 }  
 
   
 
 int main() {  
 
     long long sum = 0;  
 
     for (int i = 1; i <= 20; i++) {  
 
         sum += factorial(i);  
 
     }  
 
     printf("1+2!+3!+...+20!的和是: %lld\n", sum);  
 
     return 0;  
 
 }



注意:这里使用long long类型来存储阶乘的结果和总和,因为阶乘很快就会超出int类型的范围。


Python版本


Python有内置的函数math.factorial()可以直接计算阶乘,但是为了演示,我们仍然可以自己编写一个计算阶乘的函数。


python复制代码
 def factorial(n):  
 
     result = 1  
 
     for i in range(2, n + 1):  
 
         result *= i  
 
     return result  
 
   
 
 # 计算1+2!+3!+...+20!的和  
 
 sum_of_factorials = sum(factorial(i) for i in range(1, 21))  
 
 print(f"1+2!+3!+...+20!的和是: {sum_of_factorials}")



Python的简洁性在这里得到了很好的体现,我们可以直接使用列表推导式和sum()函数来计算整个序列的和。同时,Python的整数类型会自动处理大数,所以不需要担心整数溢出的问题。


这两个示例展示了如何在C语言和Python中处理这类问题。在实际应用中,根据问题的规模和语言的特性选择合适的方法。


image.png

相关文章
|
5月前
|
新能源
大盘择时:慎用固定均线!12年回测A股数据揭示择时策略的3大适应性缺陷
动量策略加入50日与200日均线择时后收益下降,主要因均线滞后、逻辑冲突及市场变化。解决方案包括动态调整择时参数、结合多指标验证、优化动量执行细节,提升策略适应性与收益表现。
|
Android开发
Android 中选项菜单(Option menu)的用法
Android 中选项菜单(Option menu)的用法
462 0
|
iOS开发 开发者
ios证书申请最简单的教程
使用uniapp进行开发的时候,点击uniapp打包界面的教程,提示需要Mac电脑申请ios证书,但是手上没有mac电脑,几经周折,终于找到了不需要mac电脑生成ios证书的解决方案。今天将解决方案整理出来。
602 10
|
人工智能 搜索推荐 数据挖掘
让 AI 回答更精准 ◎ 来学学这些Prompt入门小技巧
这篇文章介绍了如何通过有效的提示词来提升向AI提问的质量,使其回答更加精准,并提供了实用的指导原则和案例分析。
让 AI 回答更精准 ◎ 来学学这些Prompt入门小技巧
|
并行计算 开发工具 异构计算
在Windows平台使用源码编译和安装PyTorch3D指定版本
【10月更文挑战第6天】在 Windows 平台上,编译和安装指定版本的 PyTorch3D 需要先安装 Python、Visual Studio Build Tools 和 CUDA(如有需要),然后通过 Git 获取源码。建议创建虚拟环境以隔离依赖,并使用 `pip` 安装所需库。最后,在源码目录下运行 `python setup.py install` 进行编译和安装。完成后即可在 Python 中导入 PyTorch3D 使用。
1540 0
|
小程序 Android开发 数据安全/隐私保护
八米云PCDN-N1盒子、机顶盒等设备-小白保姆式超详细刷机教程
本文介绍了如何为魔百盒CM211-1等S905系列机顶盒进行线刷准备及步骤,包括所需工具、线刷流程、短接刷机、写入八米系统等详细操作,适用于刷入安卓9系统。特别提示,刷过其他系统的用户可简化部分步骤。
3128 0
八米云PCDN-N1盒子、机顶盒等设备-小白保姆式超详细刷机教程
|
Java 关系型数据库 MySQL
【Java】已解决com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException异常
【Java】已解决com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException异常
1174 0
|
消息中间件 存储 NoSQL
浅谈返利app架构设计
浅谈返利app架构设计
|
编解码 网络协议 开发工具
Android平台如何实现RTSP转GB28181
实际上,在做Android平台GB28181设备接入模块的时候,我们已经有了非常好的技术积累,比如RTMP推送、轻量级RTSP服务、一对一互动模块、业内几乎最好的RTMP|RTSP低延迟播放器。
314 1