居。。居然全WA了?!!明明样例都过了,蒟蒻java求助!!

P1591 阶乘数码

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

这是修正后的!!


|