F_oR_es_T @ 2022-07-28 09:52:22
头文件没全用上,就是习惯都写上
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <string>
#include <cstring>
#include <sstream>
using namespace std;
#define endl "\n"
int charToInt(char c){
int k=c-'0';
return k;
}
char intToChar(int k){
char c=k+'0';
return c;
}
int cc[1001];
string product(string s1,string s2){
int m=s1.size(),n=s2.length();
memset(cc,0,sizeof(cc));
for(int j=n-1;j>=0;j--){
for(int i=m-1;i>=0;i--){
int a=charToInt(s1[i]);
int b=charToInt(s2[j]);
int temp=a*b;
temp+=cc[i+j+1];
cc[i+j+1]=temp%10;
cc[i+j]+=temp/10;
}
}
stringstream ss;
for(int i=0;i<m+n;i++){
if(ss.str().size()==0&&cc[i]==0){
continue;
}else{
ss<<cc[i];
}
}
return ss.str().size()==0?"0":ss.str();
}
string intToStr(int k){
stringstream ss;
ss<<k;
return ss.str();
}
string fac(int n){
if(n==1){
return "1";
}else{
string facNjian1=fac(n-1);
string nn=intToStr(n);
return product(nn,facNjian1);
}
}
int main(){
int a,m;
cin>>a;
char n;
int g[100]={};
int s=0;
for(int i=0;i<a;i++){
cin>>m>>n;
string z=fac(m);
int w=z.length();
int sum=0;
for(int j=0;j<w;j++){
if(z[j]==n){
sum++;
}
}
g[s]=sum;
s++;
}
for(int i=0;i<a;i++){
cout<<g[i]<<endl;
}
return 0;
}