luoguyijing @ 2022-01-28 16:13:34
import java.math.*;
public class Main{
public static void main(String[] args) {
java.util.Scanner re=new java.util.Scanner(System.in);
int t=re.nextInt();
int[][] a=new int[t][2];
for(int i=0;i<t;i++)
for(int k=0;k<2;k++)
a[i][k]=re.nextInt();//输入数的阶层和数码
BigInteger s=BigInteger.valueOf(1);//s是阶层计算后的结果
int m;
int d=0,count=0,j=0;
for(int i=0;i<t;i++)
{
for(int k=a[i][0];k>0;k--)
s=s.multiply(BigInteger.valueOf(k));//s是阶层计算后的结果
d=s.toString().length();
for( j=0,count=0;j<d;j++)//求数码出现的次数
{
m=s.intValue()%10;
if(m==a[i][1])
count++;
s=s.divide(BigInteger.valueOf(10));
}
System.out.println(count);
s=BigInteger.valueOf(1);
}
}
}
by luoguyijing @ 2022-01-28 17:46:38
import java.math.BigInteger;
public class Main{
public static void main(String[] args) {
java.util.Scanner re=new java.util.Scanner(System.in);
int t=re.nextInt();
int[][] a=new int[t][2];
for(int i=0;i<t;i++)
for(int k=0;k<2;k++)
a[i][k]=re.nextInt();//输入数的阶层和数码
BigInteger s=BigInteger.valueOf(1);//s是阶层计算后的结果
int d=0,count=0,j=0;
for(int i=0;i<t;i++)
{
for(int k=a[i][0];k>0;k--)
s=s.multiply(BigInteger.valueOf(k));//s是阶层计算后的结果
d=s.toString().length();
for( j=0,count=0;j<d;j++)//求数码出现的次数
{
BigInteger m=s.mod(BigInteger.valueOf(10));
int p=m.intValue();
if(p==a[i][1])
count++;
s=s.divide(BigInteger.valueOf(10));
}
System.out.println(count);
s=BigInteger.valueOf(1);
}
}
}
by luoguyijing @ 2022-01-28 17:47:11
这是修正后的!!