P1009 [NOIP1998 普及组] 阶乘之和

题目描述
用高精度计算出 S = 1! + 2! + 3! +⋯+n!(n≤50)。
其中“!”表示阶乘,例如:5! = 5×4×3×2×1。
输入格式
一个正整数 n。
输出格式
一个正整数 S,表示计算结果。
输入输出样例
输入 #1复制
3

输出 #1复制
9
说明/提示
【数据范围】
对于 100% 的数据,1≤n≤50。
求阶乘之和,如果分步计算阶乘再求和,数据的存储和组织是一件很麻烦的事,需要存取n组数据,并且有很多计算过程其实是重复的。
有两种思路,一种是从1递增到n,依次相乘,将结果保存,最后相加,这省去了计算,但存储仍然麻烦。
另一种思路,是在公式上动手脚,进行处理。我们注意到每个阶乘都是后面阶乘的因数,因而可以将之提取出来:
1!+2!+3!+···(n-1)!+n!=1+2(1+3(·····(n-1)(1+n)
如此一来,整个式子转换为了一种迭代关系:
1+i*(上一步的结果)
对于初始情况,将“上一步的结果”设置为1即可。
注意边界,i递减到2即可。
#include <

P1009 [NOIP1998 普及组] 阶乘之和最先出现在Python成神之路

版权声明:
作者:zhangchen
链接:https://www.techfm.club/p/26288.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>