洛谷 P1591 阶乘数码

2023-05-16

题目描述

求n!中某个数码出现的次数。

输入输出格式

输入格式:

 

第一行为t(≤10),表示数据组数。接下来t行,每行一个正整数n(≤1000)和数码a。

 

输出格式:

 

对于每组数据,输出一个整数,表示n!中a出现的次数。

 

输入输出样例

输入样例#1: 复制

2
5 2
7 0  
输出样例#1: 复制

1
2
思路:高精度板子

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int t,n,m,ans;
struct nond{
    int num[100000];
}v[1010];
void cheng(int pos,int num1[500]){
    for(int i=0;i<=num1[0];i++)
        v[pos].num[i]=num1[i];
    for(int i=1;i<=num1[0];i++)
        v[pos].num[i]*=pos;
    for(int i=1;i<=num1[0];i++)
        if(v[pos].num[i]>=10){
            if(i==num1[0])    num1[0]++;
            v[pos].num[i+1]+=v[pos].num[i]/10;
            v[pos].num[i]%=10;
        }
    for(;num1[0]>=1;num1[0]--)    if(v[pos].num[num1[0]]!=0)    break;
    v[pos].num[0]=num1[0];
}
int main(){
    scanf("%d",&t);
    while(t--){
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++)    v[i].num[0]=1,v[i].num[1]=1;
        for(int i=2;i<=n;i++)    cheng(i,v[i-1].num);
        for(int i=v[n].num[0];i>=1;i--)
            if(v[n].num[i]==m)    ans++;
        cout<<ans<<endl;ans=0;memset(v,0,sizeof(v));
    }
}  

 


   

转载于:https://www.cnblogs.com/cangT-Tlan/p/7995176.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

洛谷 P1591 阶乘数码 的相关文章

  • windows 下 Rust 使用OpenSSL

    windows 下 Rust 使用OpenSSL 问题 在cargo toml 中添加包依赖 xff1a dependencies openssl 61 version 61 34 0 10 34 features 61 34 vendor
  • python的socket、urlib、request指定出口网卡

    需求 一台机器上有多个网卡 如何访问指定的 URL 时使用指定的网卡发送数据呢 1 curl interface eth0 www baidu com curl interface 可以指定网卡 阅读 urllib py 的源码 追述到 o
  • OCiOS开发:集合视图 UICollectionView

    简介 UICollectionView 和 UICollectionViewController 类是iOS6 新引进的API xff0c 用于展示集合视图 xff0c 布局更加灵活 xff0c 可实现多列布局 xff0c 用法类似于UIT
  • Epoll学习心得

    首先 xff0c 我们应该知道Epoll可以完成什么任务 xff1a 我们可以把Epoll理解成为这样一个人 xff0c 我们可以把她大概想象成为一个公司很多老总所共有的一个漂亮的女秘书 xff0c 老总们都很忙 xff0c 所有人和老总中
  • 音视频技术原理

    1 播放器的数据处理流程 2 封装格式 按照 一定的格式 把音视频流和描述数据 存储到文件中 3 编码格式 音频编码 G 711 G722 G726 AAC MP1 MP2 MP3 AC 3 WMA 视频编码 h265 H264 H263
  • PTA 7-134 列出完数

    PTA 7 134 列出完数 输入一个整数n xff0c 要求输出 1 xff0c n 范围内的所有完数 完数是一个正整数 xff0c 该数恰好等于其所有不同真因子之和 例如 xff0c 6 28是完数 xff0c 因为6 61 1 43
  • C/C++ 子线程阻塞主线程

    如果不需要子线程阻塞主线程 xff0c 就不要调用join方法 thread生成后就已经在执行了 xff0c 不需要 join 研究以下 join detach几个thread相关的方法
  • ubuntu 查看当前目录文件大小

    输出当前目录下的所有文件和文件夹的大小 xff0c 并按照大小排序 du h d 1 sort h du h d 1 xff1a 显示当前目录下所有一级子目录的大小 du sh 显示当前目录的总大小 du h 显示当前目录下所有子目录的大小
  • vs平台工具集

    vs2010版本之后支持使用之前的版本编译 xff0c 可以在 属性 gt 常规中找到 需要安装对应的vs版本才可以使用各自对应的选项 其中vs2013中可以识别已经安装的vs2012 xff08 Visual Studio 2012 v1
  • Ubuntu CentOS Debian 哪个系统好?

    Ubuntu CentOS Debian 哪个系统好 xff1f 十 16 2010 in VPS笔记 Linux Server玩多了 xff0c 在商业化的LINUX中我只能说 ubuntu 是一个鸡肋 UNIX只在试验中玩过 xff0c
  • 1191:流感传染

    1191 xff1a 流感传染 题目描述 有一批易感人群住在网格状的宿舍区内 xff0c 宿舍区为n n的矩阵 xff0c 每个格点为一个房间 xff0c 房间里可能住人 xff0c 也可能空着 在第一天 xff0c 有些房间里的人得了流感

随机推荐

  • 每个程序员半小时内必须解决的5个编程问题(C语言实现)

    最近关注的几个算法的公众号都看到了如题的一篇文章 xff0c 后1道题单拿出来我肯定不能半个小时内解决 前三道题非常基础 xff0c 相信大部分人能用自己熟悉的语言很快解决 xff0c 而且解决的方法可以多种多样 xff0c 这里说一下我对
  • 算法导论学习笔记02——最大子数组问题

    最大子数组问题 xff1a 输入一个数组A xff0c 在数组A的众多非空连续子数组中 xff0c 找到和最大的一个 目录 暴力求解方法 分治思想求解 分治思想C代码 测试脚本 暴力求解方法 对一个长度为A的数组 xff0c 可以存在个非空
  • Linux中各文件占用的Cache统计

    统计Linux中各个文件占用cache的情况 xff0c 使用工具fincore 可以从GitHub上获取到源码 xff1a https github com david415 linux ftools git 下载后 xff0c conf
  • 算法导论学习笔记05——求一个数列中第N大的数字

    本篇文章根据快速排序的分治思想在排序的情况下求解一个数列中第N大的数字 关于快速排序的原理和实现算法导论学习笔记04 快速排序 快速排序中介绍了一种PARTITION 函数 xff0c 它将原数组A r 使用一个主元x xff08 A 的某
  • 求最大数和最小数的最大公约数

    从键盘输入10个正整数 xff0c 求出最大数 xff0c 最小数 xff0c 以及他们的最大公约数 要求用数组实现 程序运行结果示例1 xff1a Input 10 numbers 15 23 56 87 94 105 78 19 22
  • 文件名排序(自然序)

    文件名就是一个字符串 xff0c 在对两个文件名进行比较时 xff0c 当文件名中有数字时 xff0c 仅仅按照字典序逐个字符的比较会出现如下不合理的情况 xff1a 文件 xff1a 10 a 11 a 100 a 排序的结果是10 a
  • 算法导论学习笔记06——二叉搜索树

    二叉搜索树以二叉树的形式组织数据 xff0c 每个节点除了记录key值和卫星数据 xff08 非key值的数据 xff09 外 xff0c 还需要三个指针 xff1a left xff08 指向左孩子 xff09 right xff08 指
  • Ubuntu 编译安装 php7.4

    安装依赖 sudo apt update sudo apt install gcc y amp amp sudo apt install make y amp amp sudo apt install openssl y amp amp s
  • WSL2 启用systemd

    WSL2 启用systemd 项目 wsl distrod 安装方法 一 1 确保默认的WSL本版为2 wsl set default version 2 2 下载并解压缩 distrod wsl launcher xff0c 解压提取ex
  • WSL2安装k8s

    WSL2启用systemd 参考这个方法 xff1a https blog csdn net hiqiming article details 125111806 spm 61 1001 2014 3001 5501 关闭swap 在当前W
  • VMware中 CentOS7网络配置

    1 检测网络是否可用 gt Ping 114 114 114 114 注意 xff1a 不要通过ping www baidu com等网站来进行测试 2 VMWare安装后的5个服务 xff08 1 xff09 Authorization
  • 数据结构学习笔记——栈

    栈 栈栈的顺序存储结构及其基本运算实现顺序栈4要素基于顺序栈的基本运算共享栈共享栈的4要素 栈的链式存储结构及其基本运算实现链栈4要素基于链栈的基本运算 栈 栈的顺序存储结构及其基本运算实现 顺序栈 4要素 基于顺序栈的基本运算 共享栈 共
  • BUG List

    BUG List 人类从历史中学到的唯一教训 xff0c 就是人类无法从历史中学到任何教训 黑格尔 Linux 常见 gedit bashrc bashrc是home目录下的一个shell文件 xff0c 用于储存用户的个性化设置 在bas
  • 为什么区间要写成左闭右开?

  • SUSE服务器上安装R语言

    参考 xff1a http blog sina com cn s blog 6caea8bf0100zfbu html 1 解压文件 xff1a tar zvxf R 2 13 2 tar gz 2 进入R源文件目录 xff1a cd R
  • n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始(18)

    第18题 xff1a 题目 xff1a n个数字 xff08 0 1 n 1 xff09 形成一个圆圈 xff0c 从数字0开始 xff0c 每次从这个圆圈中删除第m个数字 xff08 第一个为当前数字本身 xff0c 第二个为当前数字的下
  • 最大公约数算法——欧几里德算法

    欧几里德算法又称辗转相除法 xff0c 用于计算两个整数m和n 0 m lt n 的最大公约数 xff0c 记为gcd m n 其计算过程是重复应用下列等式 xff0c 直到n mod m 61 0 gcd m n 61 gcd n mod
  • 安装显卡驱动时遇到The CC version check failed问题解决方法

    在Ubuntu上安装显卡驱动时报以下错误 xff1a The CC version check failed The kernel was built with gcc version 5 4 0 20160609 Ubuntu 5 4 0
  • 几款免费好用的OCR工具

    相信经常看书的同学会有想把书里面的图片转成文字的需求 xff0c 搜集了下最近尝试的在Mac能用的OCR工具 xff0c 汇总出来 1 Microsoft Onenote 实在是找不到那个右键 gt copy as text 2 Googl
  • 洛谷 P1591 阶乘数码

    P1591 阶乘数码 题目描述 求n 中某个数码出现的次数 输入输出格式 输入格式 xff1a 第一行为t 10 xff0c 表示数据组数 接下来t行 xff0c 每行一个正整数n 1000 和数码a 输出格式 xff1a 对于每组数据 x