caojiaming @ 2022-11-10 14:00:31
#include <bits/stdc++.h>
using namespace std;
void tos(string &a,string &b)
{
if(a.length()<b.length())
{
while(a.length()<b.length())
{
a="0"+a;
}
}
else
{
while(b.length()<a.length())
{
b="0"+b;
}
}
}
void delete_zero(string &a)
{
while(a[0]=='0')
{
if(a=="0")
{
return;
}
a.erase(0,1);
}
}
char toc(int i)
{
return i+'0';
}
int toi(char c)
{
return c-'0';
}
int lar(string a,string b)
{
tos(a,b);
if(a==b)
{
return 0;
}
if(a[0]>b[0])
{
return 1;
}
if(a[0]<b[0])
{
return -1;
}
a.erase(0,1);
b.erase(0,1);
return lar(a,b);
}
string add(string,string);
string add(string a,string b)
{
tos(a,b);
int l=a.length();
bool flag=0;
for(int i=l-1;i>=0;i--)
{
int d1=toi(a[i]);
int d2=toi(b[i]);
int d3=d1+d2;
if(d3>=10)
{
d3-=10;
if(i)
{
a[i-1]++;
}
else
{
flag=1;
}
}
a[i]=(toc(d3));
}
return flag?("1"+a):a;
}
string qmul(string a,int b)
{
if(b==0)
{
return "0";
}
if(b%2==0)
{
string temp=qmul(a,b/2);
return add(temp,temp);
}
return add(qmul(a,b-1),a);
}
string jc(int n)
{
if(n==1||n==0)
{
return "1";
}
return qmul(jc(n-1),n);
}
int main()
{
int t;
scanf("%d",&t);
string ans="";
for(int i=0;i<t;i++)
{
int n;
int a;
scanf("%d%d",&n,&a);
ans=jc(n);
int cnt=0;
for(int j=0;j<ans.length();j++)
{
if(ans[j]==toc(a))
{
cnt++;
}
}
printf("%d\n",cnt);
cnt=0;
}
return 0;
}
by caojiaming @ 2022-11-10 14:39:53
我还真搞不懂
为什么开了O2就能AC了