第20届上海市青少年计算机应用操作竞赛 ☆线下赛 T1.阶乘求和

简介: 第20届上海市青少年计算机应用操作竞赛 ☆线下赛 T1.阶乘求和

第20届上海市青少年计算机应用操作竞赛 ☆线下赛 T1.阶乘求和

内存限制: 256 Mb时间限制: 1000 ms

题目描述

n 的阶乘记为 n!,它的定义如下:

n!=1×2×⋯×n

给定一个正整数 n,请计算并输出

1!+2!+3!+⋯+n!

比如 1!+2!+3!=1+2+6=9。

输入格式

单个整数:表示 n。

输出格式

单个整数:表示 1! 到 n! 的和。

数据范围

对于 30% 的数据,1≤n≤12;

对于 60% 的数据,1≤n≤20;

对于 100% 的数据,1≤n≤100;

样例数据

输入:

3

输出:

9

题目难度不大  高精度乘法与高精度加法的基础应用  需要关注的细节比较多

1. #include<bits/stdc++.h>
2. using namespace std;
3. int num[305];
4. int jc[305]={0,1};
5. int lj=1,ln=1;
6. void mul(int n){
7.  int jw=0;
8.  for(int i=1;i<=lj;i++){
9.    jc[i]=jc[i]*n+jw;
10.     jw=jc[i]/10;
11.     jc[i]%=10;
12.   }
13.   while(jw>0){
14.     jc[++lj]=jw%10;jw/=10;
15.   }
16. }
17. void add(){
18.   int jw=0;
19.   ln=max(ln,lj);
20.   for(int i=1;i<=ln;i++){
21.     num[i]+=jc[i]+jw;
22.     jw=num[i]/10;
23.     num[i]%=10;
24.   }
25.   if(jw>0) num[++ln]=jw;
26. }
27. int main()
28. {
29.   int n;
30.   cin>>n;
31.   for(int i=1;i<=n;i++){
32.     mul(i);add();
33.   }
34.   while(ln>1&&num[ln]==0)ln--;
35.   for(int i=ln;i>=1;i--)cout<<num[i];
36.   return 0;
37. }


相关文章
|
Ubuntu 数据安全/隐私保护
Ubuntu创建root用户
Ubuntu创建root用户
172 1
|
算法 编译器 Linux
【Qt4 部署】ARM系统上使用Qt 4 进行开发的QWS 等环境变量部署
【Qt4 部署】ARM系统上使用Qt 4 进行开发的QWS 等环境变量部署
419 0
|
消息中间件 SQL Kafka
Flink CPU问题之CPU利用率低如何解决
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。本合集提供有关Apache Flink相关技术、使用技巧和最佳实践的资源。
|
开发工具 C语言 git
Vcpkg 的安装与使用
Windows 下 Vcpkg 的安装与使用
1697 0
Vcpkg 的安装与使用
|
11月前
|
存储 算法 C++
高精度算法(加、减、乘、除,使用c++实现)
高精度算法(加、减、乘、除,使用c++实现)
2354 0
高精度算法(加、减、乘、除,使用c++实现)
|
8月前
|
Oracle Ubuntu 关系型数据库
linux发行版对比
国内部分常用开源操作系统简要对比
352 5
|
安全 Java
Java多线程基础-10:代码案例之定时器(一)
`Timer` 是 Java 中的一个定时器类,用于在指定延迟后执行指定的任务。它常用于实现定时任务,例如在网络通信中设置超时或定期清理数据。`Timer` 的核心方法是 `schedule()`,它可以安排任务在延迟一段时间后执行。`
264 1
|
10月前
|
JavaScript 持续交付 开发者
package.json 和 package-lock.json
`package.json`和`package-lock.json`文件共同协作,为Node.js项目提供了可靠的依赖管理机制,确保项目在不同环境下能够稳定运行和顺利构建。在项目开发和维护过程中,正确理解和合理使用这两个文件对于管理项目依赖、保证项目的稳定性和可维护性至关重要。
311 1
|
11月前
|
存储 安全 Linux
CentOS安装SeaweedFS
通过上述步骤,您应该能够在CentOS系统上成功安装并启动SeaweedFS。记住,根据实际部署规模和需求,可能还需要进一步调整配置参数和优化网络布局。SeaweedFS的灵活性和扩展性意味着随着使用深入,您可能需要探索更多高级配置和管理策略。
252 61
|
XML Java Android开发
FFmpeg开发笔记(五十二)移动端的国产视频播放器GSYVideoPlayer
GSYVideoPlayer是一款国产移动端视频播放器,支持弹幕、滤镜、广告等功能,采用IJKPlayer、Media3(EXOPlayer)、MediaPlayer及AliPlayer多种内核。截至2024年8月,其GitHub星标数达2万。集成时需使用新版Android Studio,并按特定步骤配置依赖与权限。提供了NormalGSYVideoPlayer、GSYADVideoPlayer及ListGSYVideoPlayer三种控件,支持HLS、RTMP等多种直播链接。
407 18
FFmpeg开发笔记(五十二)移动端的国产视频播放器GSYVideoPlayer