码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • XTU-OJ 1247-Robb‘s Problem


    题目描述

    Robb想知道阶乘n!第m位数码是什么?

    输入

    第一行是一个整数T,(1≤T≤10000)
    每行一个样例,为2个整数n,m,0≤n≤1000,1≤m≤log10n!+1

    输出

    每行输出一个样例的结果

    样例输入

    3
    5 1
    5 2 
    5 3
    

    样例输出

    0
    2
    1

    解题思路: 一种简单的方法就是,用二维数组存下该阶乘的计算结果,一列存一位数,容易理解,但这样就需要耗费很大的空间。

    例如num[0][1]  = 1代表 0!第一位数是1,num[2][1] = 2 代表 2!第一位数是2 , num[4][1] = 4、num[4][2] = 2 代表 4! 第一位数是4、第二位数是2。。。。。

    那么num数组 第一维开到  1000左右,没问题; 第二维: 1000! 看成 1000^1000, 那么 log10 1000^1000 = 1000* log10 1000 = 1000*3。 所以开到3000 肯定够了。

    第二种方法就是,采用 万进制 思想,一个二维数组中,一列不再存1位数,而是4位数,甚至更多,这样就能很大的节省空间。减少循环量的同时,也是在减少计算量。

    AC代码:(方法一)

    1. #include
    2. int jinwei;
    3. int num[1010][3000];
    4. int main()
    5. {
    6. num[0][1] = 1; // 0的阶乘是1
    7. num[1][1] = 1; // 1的阶乘是1
    8. for ( int i = 2; i < 1001;i ++)
    9. {
    10. for (int j = 1;j < 3000; j ++)
    11. {
    12. num[i][j] = num[i-1][j] * i + jinwei; // 相乘 + 进位
    13. jinwei = num[i][j] / 10; // 进位
    14. num[i][j] %= 10;
    15. }
    16. }
    17. int T,n,m;
    18. scanf("%d",&T);
    19. while ( T --)
    20. {
    21. scanf("%d %d",&n,&m);
    22. printf("%d\n",num[n][m]);
    23. }
    24. return 0;
    25. }

  • 相关阅读:
    openlayes + vue 最新版本 实现 轨迹移动动画
    夏天给宝宝开空调需要注意的几点
    保护花朵(选择性贪心)C++详解
    如何改变胆小怕事的性格?
    (三)行为模式:9、空对象模式(Null Object Pattern)(C++示例)
    仿牛客论坛项目
    删除docker容器日志
    torch.cuda.is_available()=false的原因
    【优化算法】基于matlab融合飞行机制的粒子群优化算法【含Matlab源码 1924期】
    前端开发:JS的解构
  • 原文地址:https://blog.csdn.net/Jay_is_Chou/article/details/134086945
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号