本题知识背景:高精度加法与高精度乘法
要点:a[0]储存个位以此类推,这样方便进位;
与我们笔算类似,我们需要将当前位 取 %10,上一位(如个位上一位为十位)取 += 当前位数字/10,不妨那笔计算25*25是否如此;
高精度加法为各位+=,高精度乘法为各位*=;
题目描述
用高精度计算出 S = 1! + 2! + 3!+⋯+n!(n≤50)。
其中“!”表示阶乘,例如:5! =5×4×3×2×1。
输入格式
一个正整数 n。
输出格式
一个正整数 S,表示计算结果。
输入输出样例
输入 #1
3
输出 #1
9
说明/提示
【数据范围】
对于 100% 的数据,1≤n≤50。
#include<stdio.h>
int n;
int lay[1050],all[1050];//lay指当前数字(如第3项数字为3!)all指当前总和
int main()
{
lay[0] = all[0] = 1; //初始化方便接口
scanf("%d", &n);
for(int i = 2; i <=n; i ++)
{
for(int j = 0; j < 100; j &#