wxcbsd123 2023-06-03 10:32 采纳率: 87.5%
浏览 23
已结题

高精阶乘求和,50分不通过

P1009 [NOIP1998 普及组] 阶乘之和
题目描述
用高精度计算出 =1!+2!+3!+⋯+!S=1!+2!+3!+⋯+n!(≤50n≤50)。
输入格式
一个正整数
n。

输出格式
一个正整数
S,表示计算结果。

输入输出样例
输入 #1复制
3
输出 #1复制
9
说明/提示
【数据范围】
对于
100% 的数据,
1≤n≤50

#include<bits/stdc++.h>
using namespace std;
int a[100000],r[100000];
void jia(int a1[],int b1[])
{
    int i,x;
    x=0;
    a1[0]++;
    for(i=1;i<=a1[0];i++){
        a1[i]=a1[i]+b1[i]+x,
        x=a1[i]/10,
        a1[i]%=10;
    }
    while(a1[a1[0]]==0&&a1[0]>0) a1[0]--;
    return ;
}
int main()
{
    int n,i,j,l;
    cin>>n;
    a[0]=a[1]=1; 
    int x=0;
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=a[0];j++){
            a[j]=a[j]*i+x,x=a[j]/10,a[j]%=10;
        }
        while(x) a[++a[0]]=x%10,x/=10;
        jia(r,a);
     } 
     for(i=r[0];i>0;i--)
       cout<<r[i];
    return 0;
}

有没有把高精阶乘玩得比较懂的,来告诉我一下我为什么能只能拿到50分。

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-06-03 12:19
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月18日
  • 已采纳回答 6月10日
  • 创建了问题 6月3日

悬赏问题

  • ¥20 校园二手交易小程序搭建
  • ¥15 请问在ubuntu用conda创建环境报错怎么能解决
  • ¥15 STM32CubeMX/proteus按键控制指示灯颜色切换
  • ¥20 python,计算区位熵和扩张指数
  • ¥15 Python环境配置
  • ¥15 大四学生的困惑,有偿提问!
  • ¥15 解决页面无法编入索引:被“noindex”标签排除的问题?
  • ¥15 arduino测量电阻
  • ¥15 快手uid转快手号谁能解决 需要开发
  • ¥15 iis部署Django时css不生效,来个真人,ai不好使