2. 阶乘数码
题目ID:7711必做题50分
最新提交:
Wrong Answer
0 分
历史最高:
Wrong Answer
0 分
时间限制: 1000ms
空间限制: 262144kB
题目描述
求n!中某个数码出现的次数。
输入格式
一行,一个正整数n(≤1000)和数码a。
输出格式
对于每组数据,输出一个整数,表示n!中a出现的次数。
样例
Input 1
5 2
Output 1
1
Input 2
7 0
Output 2
2
样例解释
样例输入1的说明:计算5!中数字2出现的次数。样例输入2的说明:计算7!中数字0出现的次数。
数据范围
n<=1000, 0<=a<=9
本人代码:
#include <iostream>
#include <stdlib.h>
#include <string>
#include <vector>
#include <cmath>
#include <time.h>
#include <algorithm>
using namespace std;
int chai (int n , int k) {
int temp , cnt = 0;
while (n != 0) {
temp = n % 10;
if (temp == k)
cnt ++;
n /= 10;
}
return cnt;
}
int n , k;
int cnt , sum;
int a[1005];
int main()
{
scanf ("%d %d" , &n , &k);
for (int i = 1 ; i <= n ; i ++)
a[i] = i;
for (int i = n + 1 ; i >= 1 ; i --) {
sum = a[i] * a[i - 1];
cnt += chai (sum , a[i]);
}
printf ("%d\n" , cnt);
return 0;
}
感觉是数组反向存储或函数处理问题,如有思路,请私信告知,谢谢!