求助,这个高精度阶乘哪里出错了

P1591 阶乘数码

sanammm @ 2022-12-05 20:11:23

#include<bits/stdc++.h>
using namespace std;

vector<int> mul(vector<int> &A,int b)
{
    vector<int> C;

    int t=0;
    for(int i=0;i<A.size();i++)
    {
        if(i<A.size()) t+=A[i]*b;
        C.push_back(t%10);
        t/=10;
    }
    return C;
}

int main()
{
    int n,m,k;
    cin>>m;
    while(m--)
    {
        vector<int> a;
        cin>>n>>k;
        a.push_back(1);

        for(int i=1;i<=n;i++)
        {
            a=mul(a,i);
        }

        for(int i=a.size()-1;i>=0;i--) cout<<a[i];
        cout<<endl;
    }
    return 0;
}

by huangruiheng0217 @ 2022-12-05 20:27:28

  1. 有没有这么一种可能,你阶乘的时候把最高位剩下的进位舍弃了

    while(t){
    C.push_back(t%10);
    t/=10;
    }
  2. 看清楚题目让你求的是什么


by donnieguo @ 2023-01-10 21:24:24

@sanammm 不是让你输出乘出来的数啊


|