第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. }


相关文章
|
人工智能
天梯赛-L1-064 估值一亿的AI核心代码 (20 分)--2019全国CCCC天梯赛L1题解
天梯赛-L1-064 估值一亿的AI核心代码 (20 分)--2019全国CCCC天梯赛L1题解
369 0
恭喜这715位选手,入围2022阿里巴巴全球数学竞赛决赛!
恭喜这715位选手,入围2022阿里巴巴全球数学竞赛决赛!
704 0
|
人工智能 iOS开发 Windows
(待补充)小蒟蒻的刷题成长之路-------中国高校计算机大赛-团队程序设计天梯赛(GPLT)上海理工大学校内选拔赛(同步赛)
(待补充)小蒟蒻的刷题成长之路-------中国高校计算机大赛-团队程序设计天梯赛(GPLT)上海理工大学校内选拔赛(同步赛)
136 0
|
机器学习/深度学习 人工智能 算法
2021-2022年度第三届全国大学生算法设计与编程挑战赛(秋季赛)G.希望(组合数学 bfs)
2021-2022年度第三届全国大学生算法设计与编程挑战赛(秋季赛)G.希望(组合数学 bfs)
243 0
2021-2022年度第三届全国大学生算法设计与编程挑战赛(秋季赛)G.希望(组合数学 bfs)
|
算法
2021-2022年度第三届全国大学生算法设计与编程挑战赛(秋季赛)热身赛 B.这是一道大水题(树状数组)
2021-2022年度第三届全国大学生算法设计与编程挑战赛(秋季赛)热身赛 B.这是一道大水题(树状数组)
160 0
2021-2022年度第三届全国大学生算法设计与编程挑战赛(秋季赛)热身赛 B.这是一道大水题(树状数组)
励志 - 13岁少年成数学大赛最小入围者
励志 - 13岁少年成数学大赛最小入围者
126 0
励志 - 13岁少年成数学大赛最小入围者
|
人工智能 达摩院 量子技术
2020阿里全球数学大赛:3万名高手、4道题、2天2夜未交卷,73人天团,正式出道!
2020阿里全球数学大赛:3万名高手、4道题、2天2夜未交卷,73人天团,正式出道!
2020阿里全球数学大赛:3万名高手、4道题、2天2夜未交卷,73人天团,正式出道!