侧边栏壁纸
  • 累计撰写 192 篇文章
  • 累计创建 2 个标签
  • 累计收到 87 条评论

【题解】P1591 阶乘数码

Allen Best
2024-02-18 / 0 评论 / 0 点赞 / 19 阅读 / 413 字
温馨提示:
本文最后更新于 2024-02-18,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
#include <bits/stdc++.h>
using namespace std;
int c[100000];
int main()
{
	int t, n, a;
	cin >> t;
	for (int i = 0; i < t; i++)
	{
		cin >> n >> a;
		memset(c, 0, sizeof(c));
		c[0] = 1;
		int l = 1;
		for (int j = 2; j <= n; j++) // 开始阶乘计算
		{
			int w = 0;
			for (int k = 0; k < l; k++) // 高精度乘单精度
			{
				c[k] = c[k] * j + w;
				w = c[k] / 10;
				c[k] %= 10;
			}
			while (w > 0) // 处理多进位
			{
				c[l] = w % 10;
				l++;
				w /= 10;
			}
		}
		int sum = 0;
		for (int j = 0; j < l; j++)
			if (c[j] == a)
				sum++; // 统计个数
		cout << sum << endl;
	}
	return 0;
}
0

评论区