第20届上海市青少年计算机应用操作竞赛 ☆线下赛 T1.阶乘求和
2023-09-27 14:25:47 时间
第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
题目难度不大 高精度乘法与高精度加法的基础应用 需要关注的细节比较多
#include<bits/stdc++.h>
using namespace std;
int num[305];
int jc[305]={0,1};
int lj=1,ln=1;
void mul(int n){
int jw=0;
for(int i=1;i<=lj;i++){
jc[i]=jc[i]*n+jw;
jw=jc[i]/10;
jc[i]%=10;
}
while(jw>0){
jc[++lj]=jw%10;jw/=10;
}
}
void add(){
int jw=0;
ln=max(ln,lj);
for(int i=1;i<=ln;i++){
num[i]+=jc[i]+jw;
jw=num[i]/10;
num[i]%=10;
}
if(jw>0) num[++ln]=jw;
}
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++){
mul(i);add();
}
while(ln>1&&num[ln]==0)ln--;
for(int i=ln;i>=1;i--)cout<<num[i];
return 0;
}
相关文章
- 分布式缓存技术redis学习(四)——redis高级应用(集群搭建、集群分区原理、集群操作)
- Google Earth Engine——金字塔重分类应用分析:将MODIS土地覆盖分类(250米)升至Landsat(陆地卫星)的(30米)分辨率
- 计算机应用基础(相关学习试题与参考答案)
- 05EasyUI 应用- 创建 RSS Feed 阅读器
- 后台开发:核心技术与应用实践3.5.2 set的查增删
- 无人驾驶背后的技术 - PostGIS点云(pointcloud)应用 - 2
- 《数据库技术原理与应用教程第2版》——3.6计算机世界与物理模型
- 《 线性代数及其应用 (原书第4版)》—— 2.7 计算机图形学中的应用
- 【FAQ】从存储权限看HarmonyOS 3.0中应用适配
- 《Android 应用测试指南》——第2章,第2.6节测试执行
- 《Android应用开发从入门到精通》——第2章,第2.4节Android开发工具
- OFweek 2016中国工业互联网技术及应用研讨会成功举办
- Python基础必掌握的print()应用详解
- 2023 年农业计算机视觉,计算机视觉在农业中的应用
- Windows上安装配置SSH教程(6)——综合应用:在Windows上实现SSH远程登陆与文件传输
- Qt编写地图综合应用27-点聚合
- Qt编写地图综合应用7-百度离线地图
- 《数据库技术原理与应用教程(第2版)》—— 3.6 计算机世界与物理模型
- 2017年计算机应用专业学术硕士毕业时的部分简历——“胡编内容版本”
- STM32F412应用开发笔记之一:初识NUCLEO-F412ZG
- 【历史上的今天】7 月 26 日:工业机器人之父诞生;《计算机欺诈和滥用法》首次应用;AT&T 合作微软