C++求助

P1591 阶乘数码

zhu_zhu_zhi_shen_zhu @ 2022-08-05 12:58:52

有巨佬告诉我高精乘低精写错了 但萌新不知为何错了```

include<bits/stdc++.h>

using namespace std; string s,t; int a[100010]={0},b[100010]={0},c[100010]={0},fe[100010]={0},e=0; int len=1; int main(){ int c,n,m; cin >> c; for(int q = 1,z=0;q <= c;q++,e++,z++) { cin >> n >> m; a[1]=1;

     for(int i=1;i<=n;i++){
        for(int j=1;j<=len;j++) {
            a[j]=a[j]*i;
        }
        int p=1;
        while(a[p]>=10 || p<len){
            a[p+1]+=a[p]/10;
            a[p]%=10;
            p++;
        }
        len=p;
    }
    for(int i=len;i>=1;i--) 
    {
       if(a[i] == m)
       {
         fe[e]++;
       }
    }
}
for(int i=0;i!=e;i++) cout << fe[i] << endl;
return 0;

}


by CSPJ10pts @ 2022-08-05 13:19:34

希望更丰富的展现?使用Markdown、TeX。


by ofbwyx @ 2022-08-05 13:35:07

先修格式。


by zhu_zhu_zhi_shen_zhu @ 2022-08-05 13:40:48

#include<bits/stdc++.h>
using namespace std;
string s,t;
int a[100010]={0},b[100010]={0},c[100010]={0},fe[100010]={0},e=0;
int len=1;
int main(){
    int c,n,m;
    cin >> c;
    for(int q = 1,z=0;q <= c;q++,e++,z++)
    {
        cin >> n >> m;
        a[1]=1;

         for(int i=1;i<=n;i++){
            for(int j=1;j<=len;j++) {
                a[j]=a[j]*i;
            }
            int p=1;
            while(a[p]>=10 || p<len){
                a[p+1]+=a[p]/10;
                a[p]%=10;
                p++;
            }
            len=p;
        }
        for(int i=len;i>=1;i--) 
        {
           if(a[i] == m)
           {
             fe[e]++;
           }
        }
    }
    for(int i=0;i!=e;i++) cout << fe[i] << endl;
    return 0;
}

by xutongwei @ 2022-08-05 14:02:26

@zhu_zhu_zhi_shen 你是不是忘了清空变量……


by loook @ 2022-09-10 17:04:56

@xutongwei 嗯哼


|