阶乘和 PTA 高精度应用

本篇博客分享了如何利用高精度算法解决PTA中的阶乘求和问题,涉及C/C++语言实现。通过高精度加法与乘法,计算1到n的阶乘和,其中n不超过50。文章提供了输入输出格式及样例,适合蓝桥杯参赛者和算法学习者参考。
摘要由CSDN通过智能技术生成

本题知识背景:高精度加法与高精度乘法

要点: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 &#
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值