求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

相关文章
|
机器学习/深度学习 数据采集 人工智能
大模型升级与设计之道:ChatGLM、LLAMA、Baichuan及LLM结构解析(上)
大模型升级与设计之道:ChatGLM、LLAMA、Baichuan及LLM结构解析(上)
1249 0
|
存储 JSON 关系型数据库
Pandas载入txt、csv、Excel、JSON、数据库文件讲解及实战(超详细 附源码)
Pandas载入txt、csv、Excel、JSON、数据库文件讲解及实战(超详细 附源码)
298 0
|
iOS开发 开发者
ios证书申请最简单的教程
使用uniapp进行开发的时候,点击uniapp打包界面的教程,提示需要Mac电脑申请ios证书,但是手上没有mac电脑,几经周折,终于找到了不需要mac电脑生成ios证书的解决方案。今天将解决方案整理出来。
298 10
|
Android开发
Android 中选项菜单(Option menu)的用法
Android 中选项菜单(Option menu)的用法
360 0
|
12月前
|
人工智能 搜索推荐 数据挖掘
让 AI 回答更精准 ◎ 来学学这些Prompt入门小技巧
这篇文章介绍了如何通过有效的提示词来提升向AI提问的质量,使其回答更加精准,并提供了实用的指导原则和案例分析。
让 AI 回答更精准 ◎ 来学学这些Prompt入门小技巧
|
11月前
|
并行计算 开发工具 异构计算
在Windows平台使用源码编译和安装PyTorch3D指定版本
【10月更文挑战第6天】在 Windows 平台上,编译和安装指定版本的 PyTorch3D 需要先安装 Python、Visual Studio Build Tools 和 CUDA(如有需要),然后通过 Git 获取源码。建议创建虚拟环境以隔离依赖,并使用 `pip` 安装所需库。最后,在源码目录下运行 `python setup.py install` 进行编译和安装。完成后即可在 Python 中导入 PyTorch3D 使用。
1063 0
|
12月前
|
缓存 JavaScript 前端开发
三个小时vue3.x从零到实战(vue3.x面试总结)
该文章总结了Vue 3.x面试中常见的知识点和问题,包括Vue的生命周期、核心概念、组件通信方式等方面的内容,有助于准备Vue相关技术面试。
143 0
|
Java 关系型数据库 MySQL
【Java】已解决com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException异常
【Java】已解决com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException异常
955 0
|
域名解析 网络协议 Ubuntu
Linux 上的 dig 和 nslookup 命令
Linux 上的 dig 和 nslookup 命令
702 0
|
编解码 大数据 定位技术
遥感数据、气象数据、土地土壤数据、农业数据、行政区数据...GIS数据获取网站整理
遥感数据、气象数据、土地土壤数据、农业数据、行政区数据...GIS数据获取网站整理
1050 2