思路

  • 循环n次,每次计算i的阶乘i!,并加入sum中。

  • n的范围从1~100,这里一定要使用高精度运算,涉及到“高精度乘低精度”,“高精度加高精度”。

  • 避免每次重复计算i!(i+1)!等于上一轮计算的i!*(i+1),因此在循环的n次过程中,每次做一次乘法(计算i!)、一次加法(将i!累加到sum中),即可得到结果。

  • 使用两个数组空间存储高精度数字,njc[300]用于计算i的阶乘、sum[300]用于累加和。

例程

#include<iostream>
using namespace std;
int njc[300]; //n!,全局数组,默认初始化为0
int sum[300]; //累加和,全局数组,默认初始化为0
void print(int num[]){ //结果打印函数
for(int i=num[0]; i>=1; i--) printf("%d", num[i]);
}
int main(){
int n;
scanf("%d", &n);
njc[0]=1, njc[1]=1; //初始化ncj=1!,0单元存储长度
sum[0]=1, sum[1]=1; //初始化sum=1!,0单元存储长度
for(int i=2; i<=n; i++){ //i从2循环至n
int jw=0;
for(int j=1; j<=njc[0]; j++){ //njc*i,得到 i!
njc[j]=njc[j]*i+jw;
jw=njc[j]/10;
njc[j]%=10;
}
if(jw){ //乘数最多为2位数,位数最多增加2
if(jw>=10) { njc[njc[0]+1]=jw%10; njc[njc[0]+2]=jw/10; njc[0]+=2; }
else { njc[njc[0]+1]=jw; njc[0]+=1;}
} int max_ws=max(sum[0], njc[0]); //max(njc, sum)
jw=0;
for(int j=1; j<=max_ws; j++){
sum[j]=sum[j]+njc[j]+jw;
jw=sum[j]/10;
sum[j]%=10;
} //确定位数
if(jw) { sum[max_ws+1]=jw; sum[0]=max_ws+1; }
else sum[0]=max_ws;
}
print(sum); //输出结果
return 0;
}

LFYZ-OJ ID: 1009 阶乘和的更多相关文章

  1. 新疆大学(新大)OJ xju 1009: 一带一路 prim求最短路径+O(n)素数筛选

    1009: 一带一路 时间限制: 1 Sec  内存限制: 128 MB 题目描述 一带一路是去去年习大大提出来的建设“新丝绸之路经济带”和“21世纪海上丝绸之路”的战略构想.其中就包括我们新疆乌鲁木 ...

  2. 九度oj 题目1009:二叉搜索树

    题目1009:二叉搜索树 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:5733 解决:2538 题目描述: 判断两序列是否为同一二叉搜索树序列 输入: 开始一个数n,(1<=n&l ...

  3. 九度oj题目1009:二叉搜索树

    题目描述: 判断两序列是否为同一二叉搜索树序列 输入:                        开始一个数n,(1<=n<=20) 表示有n个需要判断,n= 0 的时候输入结束. 接 ...

  4. 九度OJ 1179:阶乘 (循环)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:5149 解决:1523 题目描述: 输入n, 求y1=1!+3!+...m!(m是小于等于n的最大奇数) y2=2!+4!+...p!(p是 ...

  5. BZOJ 1009 GT考试(ac自动机+矩阵DP)

    题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1009 题意:给定一个长度为m的串s.有多少种长度为n的串不包含s? 思路:(1)将s插入 ...

  6. bzoj 1009 [HNOI2008]GT考试(DP+KMP+矩阵乘法)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1009 [题意] 给定一个字符串T,问长度为n且不包含串T的字符串有多少种. [思路] ...

  7. BZOJ 1009: [HNOI2008]GT考试(kmp+dp+矩阵优化)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1009 题意: 思路:真的是好题啊! 对于这种题目,很有可能就是dp,$f[i][j]$表示分析到第 ...

  8. 【BZOJ】1009: [HNOI2008]GT考试(dp+矩阵乘法+kmp+神题)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1009 好神的题orzzzzzzzzzz 首先我是连递推方程都想不出的人...一直想用组合来搞..看来 ...

  9. bzoj 1009 [HNOI2008]GT考试——kmp+矩阵优化dp

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1009 首先想到 确保模式串不出现 就是 确保每个位置的后缀不是该模式串. 为了dp,需要记录 ...

随机推荐

  1. VMware虚拟机上网络连接解决方案

    VMware虚拟机上网络连接解决方案 作者:凯鲁嘎吉 - 博客园http://www.cnblogs.com/kailugaji/ 从虚拟机上连接外部网络,需要设置以下几个地方. 1.服务 (1)打开 ...

  2. const关键字到底该怎么用

    原文地址:https://www.yanbinghu.com/2019/01/28/7442.html 前言 我们都知道使用const关键字限定一个变量为只读,但它是真正意义上的只读吗?实际中又该如何 ...

  3. bootatrsp datetimepicker的初始化和阻止模态窗关闭(事件冒泡)

    1.github下载资源包  http://www.bootcss.com/p/bootstrap-datetimepicker/ 2.引入bootstrap-datetimepicker.min.c ...

  4. tomcat报异常Invalid character found in method name. HTTP method names must be tokens

    最近监控了一下测试环境的日志,突然出现如下一个异常 由Error parsing HTTP request header可以看出是由于解析请求头出错导致的,但是它属于DEBUG级别的异常,虽然不影响系 ...

  5. 日志学习系列(二)——Log4net的实例

    一.log4net简单实例创建步骤如下 1.第一步:在项目中添加对log4net.dll的引用,这里引用版本是2.0.8.0 2.第二步:程序启动时读取log4net的配置文件. 读取log4net的 ...

  6. Dockerfile 规范

    https://time-track.cn/compile-docker-from-source.html 参考 https://time-track.cn/install-docker-on-ubu ...

  7. 真正的轻量级WebService框架——使用JAX-WS(JWS)发布WebService(转载)

    WebService历来都很受重视,特别是Java阵营,WebService框架和技术层出不穷.知名的XFile(新的如CXF).Axis1.Axis2等. 而Sun公司也不甘落后,从早期的JAX-R ...

  8. FineUIPro v5.2.0已发布(jQuery升级,自定义图标,日期控件)

    FineUIPro/MVC/Core/JS v5.2.0 已经于 2018-8-20 发布,官网示例已更新,如果大家在测试中发现任何问题,请回复本帖,谢谢了. 在线示例: FineUI Pro:htt ...

  9. SharedPreferences类的使用

    SharedPreferences,用xml文件保存用户的偏好设置,是一个轻量级的存储类. 效果图: 代码: activity_main <?xml version="1.0" ...

  10. 数据交换格式与SpringIOC底层实现

    1.数据交换格式 1.1 有哪些数据交换格式 客户端与服务器常用数据交换格式xml.json.html 1.2 数据交换格式应用场景 1.2.1 移动端(安卓.iOS)通讯方式采用http协议+JSO ...