追风少年_9 2022-08-05 09:51 采纳率: 78.6%
浏览 25
已结题

noi 1.6 15:阶乘和结果出错

问题遇到的现象和发生背景

15:阶乘和
总时间限制: 1000ms 内存限制: 65536kB
描述
用高精度计算出S=1!+2!+3!+…+n!(n≤50)

其中“!”表示阶乘,例如:5!=54321。

输入正整数N,输出计算结果S。

输入
一个正整数N。
输出
计算结果S。
样例输入
5
样例输出
153
来源
NOIP1998复赛 普及组 第二题

问题相关代码
#include<bits/stdc++.h>

using namespace std;

int main()
{
    int n;
    cin>>n;
    int a[100],h[100]={0};
    int l;
    for(int k=1;k<=n;k++)
    {
        for(int i=0;i<100;i++)
        {
            a[i]=0;
        }
        a[1]=1;
        l=1;
        for(int i=1;i<=k;i++)
        {
            for(int j=1;j<=l;j++)
            {
                a[j]=a[j]*i;
                a[j]=a[j-1]/10+a[j];
                a[j-1]=a[j-1]%10;
                if(a[j]>=10&&j>=l)
                 l++;
            }
        }
        for(int i=0;i<100;i++)
     {
      h[i]+=a[i]+h[i];
         if(h[i]>=10)
      {
       h[i+1]++;
       h[i]-=10;
      }
     }
    }
    bool f=false;
 for(int i=99;i>=0;i--)
 {
  if(h[i]!=0)
   f=true;
  if(f==true)
   cout<<h[i];
 }
 if(f==false)
     cout<<0;
    return 0;
}


运行结果及报错内容

输入:
5
输出:
3840

我的解答思路

套的求10000以内n的阶乘的代码
代码如下:


#include<bits/stdc++.h>

using namespace std;

int main()
{
    int a[100000]={0};
    a[1]=1;
    int n;
    cin>>n;
    int l=1;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=l;j++)
        {
            a[j]=a[j]*i;
            a[j]=a[j-1]/10+a[j];
            a[j-1]=a[j-1]%10;
            if(a[j]>=10&&j>=l)
             l++;
        }
    }
    for(int i=l;i>=1;i--)
        cout<<a[i];
    return 0;
}
  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2022-08-05 10:09
    关注

    你把算阶乘的代码封装成一个函数,然后循环调用求和啊

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月13日
  • 已采纳回答 8月5日
  • 修改了问题 8月5日
  • 创建了问题 8月5日

悬赏问题

  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据