不知道哪里错了,0分求调。
#include<bits/stdc++.h>
using namespace std;
int a[5000][5000],b[5000];
void cheng(int n,int k){
b[n]=b[k];
int s=0;
for(int i=1;i<=b[n];i++){
a[n][i]=a[k][i]*n+s;
s=a[n][i]/10;
a[n][i]=a[n][i]%10;
}
if(s!=0){
b[n]++;
a[n][b[n]]=s;
}
}
void j(int n){
if(n==1){
b[1]=1;
a[1][1]=1;
}
else {
cheng(n,n-1);
}
}
int main(){
int p;
cin>>p;
for(int i=1;i<=1000;i++){
j(i);
}
while(p--){
int n,s,ans=0;
cin>>n>>s;
for(int i=1;i<=b[n];i++){
if(a[n][i]==s){
ans++;
}
}
cout<<ans<<endl;
}
return 0;
}