零分求调

P1591 阶乘数码

Wooden_head @ 2023-05-29 13:54:32

#include<bits/stdc++.h>
using namespace std;
long long t,num[1001][2],to[1001];
int sum(int s1){
    long long Big[1000000]={0},num_a=0,Big_ws=0,s4;
    Big[0]=1;
    for(int s2=2;s2<=num[s1][0];s2++){
        for(int s3=0;s3<=Big_ws;s3++)       //乘
            Big[s3]*=s2;
        for(s4=0;Big[s4]==0;s4++){          //处理进位,顺便记录2的个数
            if(Big[s4]>=10){
                Big[s4+1]=Big[s4+1]+Big[s4]/10;
                Big[s4]%=10;
            }
            if(Big[s4]==num[s1][1])
                num_a++;
        }
        Big_ws=s4-1;
    }
    return num_a;
    return 0;
}
int main(){
    cin>>t;
    for(int s=0;s<t;s++)
        cin>>num[s][0]>>num[s][1];   //输入
    for(int s1=0;s1<t;s1++)
        to[s1]=sum(s1);              //记录2的个数
    for(int s=0;s<t;s++)
        cout<<to[s]<<"\n";           //输出
    return 0;
}

by Wooden_head @ 2023-05-29 13:55:07

没有输出


by Chenyufeng040525 @ 2023-06-02 15:41:55

@tanyouyu s4那的循环有问题,导致输出都是0,不过我感觉你这代码有其他问题,建议还是看看题解是怎么写的


|