江户川コナン @ 2021-07-21 22:22:55
代码:
#include<bits/stdc++.h>
using namespace std;
const int maxn=10005;
int ans[maxn],aans[maxn],bans[maxn],n,a;
bool big[maxn];
string gj(string a,string b){
memset(ans,0,sizeof(ans));
memset(aans,0,sizeof(aans));
memset(bans,0,sizeof(bans));
memset(big,false,sizeof big);
int lena=a.size(),lenb=b.size();
for(int i=0;i<lena;i++){
aans[i]=a[lena-i-1]-'0';
}
for(int i=0;i<lenb;i++){
bans[i]=b[lenb-i-1]-'0';
}
/*for(int i=0;i<lena;i++){
cout<<aans[i]<<" ";
}*/
//cout<<endl;
/*for(int i=0;i<lenb;i++){
cout<<bans[i]<<" ";
}*/
//cout<<endl;
//cout<<"cpp"<<endl;
for(int i=0;i<lena;i++){
for(int j=0;j<lenb;j++){
ans[i+j]+=aans[i]*bans[j];
big[i+j]=true;
}
}
//cout<<"cpp"<<endl;
//cout<<ans[0]<<endl;
/*for(int i=0;big[i]!=false;i++){
cout<<ans[i]<<" ";
}*/
//cout<<"cpp"<<endl;
for(int i=0;i<lena+lenb;i++){
ans[i+1]+=ans[i]/10;
if(ans[i]/10!=0){
big[i+1]=true;
}
ans[i]%=10;
}
int lenab=0;
while(big[lenab]){
lenab++;
}
lenab--;
string str="";
for(int i=lenab;i>=0;i--){
str+=(ans[i]+'0');
}
return str;
}
void read(){
int sum=0;
cin>>n>>a;
string je="1";
string j="";
for(int i=1;i<=n;i++){
j+=(i+'0');
je=gj(j,je);
j="";
}
for(int i=0;i<je.size();i++){
if((je[i]-'0')==a){
sum++;
}
}
cout<<sum<<endl;
}
int main(){
int T;
cin>>T;
while(T--){
read();
}
return 0;
}
恳求大佬/神犇指点迷津