:)
明明没问题
前导0等于没消
#include<iostream>
#include<string.h>
using namespace std;
int main(){
int A[5010]={0},n,i,j,t,m,y=0;
int f=0;
cin>>t;
for(int l=t;l>0;l--){
cin>>n>>m;y=0,f=0;
memset(A,0,sizeof(A));
A[0]=1;
for (i=2;i<=n;i++){
for (j=0;j<5010;j++)A[j]*=i;
for (j=0;j<5010;j++)if (A[j]>9)A[j+1] += A[j]/10,A[j]%=10;
}
for (j=0;j<=5010;j++){
if(A[j]==0&&f==0){
continue;
}
f++;
if(A[j]==m)y++;
}
cout<<y<<endl;
}
}