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,不过我感觉你这代码有其他问题,建议还是看看题解是怎么写的