求助高精度输出不正确
查看原帖
求助高精度输出不正确
668599
BearBig楼主2022/7/4 16:47

闰土

#include<bits/stdc++.h>
using namespace std;
struct var
{
    int src[1000];
    var(string num)
    {
        memset(src,0,sizeof(src));
        for(int i=0;i<num.length();++i)
            src[1000-num.length()+i]=num[i]-'0';
    }
    int &operator[](int ind){return src[ind];}
};
var operator*(var a,int b)
{
    for(int i=0;i<1000;++i)
        a[i]*=b;
    for(int i=998;i>=0;--i)
    {
        a[i]+=a[i+1]/10;
        a[i+1]%=10;
    }
    return a;
}
ostream& operator<<(ostream& cout,var b)
{
    for(int i=0;i<1000;++i)
        if(b[i]!=0)
            for(int j=i;j<1000;++j)
                cout<<b[j];
    return cout;
}
int main()
{
    int t;cin>>t;while(t--)
    {
        int n,a,cnt(0);cin>>n>>a;
        var big("1");
        for(int i=1;i<=n;++i)
            big=big*i;
        for(int i=0;i<1000;++i)
            if(big[i]!=0)
                for(int j=i;j<1000;++j)
                    if(big[j]==a)++cnt;
        cout<<cnt<<endl;
    }
}
2022/7/4 16:47
加载中...