题目描述
求 n! 中某个数码出现的次数。
输入格式
第一行为 t(t \leq 10)t(t≤10),表示数据组数。接下来 tt 行,每行一个正整数 n(n \leq 1000)n(n≤1000) 和数码 aa。
输出格式
对于每组数据,输出一个整数,表示 n!n! 中 aa 出现的次数。
输入输出样例
输入 #1
2
5 2
7 0
输出 #1
1
2
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<queue>
#include<cstdio>
#include<math.h>
#include <map>
using namespace std;
int a[100000];
int n,m,x,y;
int main(){
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> x >> y;
memset(a,0,sizeof(a));
a[0] = 1;
int l = 1;
for(int j = 2;j <= x; j++) {
int w = 0;
for(int k = 0; k < l ; k++) {
a[k] = a[k]*j+w;
w = a[k]/10;
a[k]%=10;
}
while(w > 0) {
a[l] = w%10;
l++;
w/=10;
}
}
int sum = 0;
for (int j = 0;j < l ;j++) {
if(a[j] == y) sum++;
}
cout << sum << endl;
}
return 0;
}