题意:
求一个数(1-1000)的阶乘结果中包括某个数字的次数;
分析:
题目本意是高精度,为了熟悉java就用java大数水了一波。
代码:
import java.math.BigDecimal;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
for (int i = 0; i < t; i++) {
int n = sc.nextInt();
int a = sc.nextInt();
BigDecimal num = new BigDecimal(n);
BigDecimal res = new BigDecimal(1);
for (int k = 2; k <= n; k++) {
res = res.multiply(new BigDecimal(k));
}
int count = 0;
char[] ch = res.toString().toCharArray(); //将大数转换成字符串再转换成字符数组
for (int j = 0; j < ch.length; j++) {
if (ch[j] == (char) ('0' + a)) { //强转
count++;
}
}
System.out.println(count);
}
}
}