题目来源: CodeForces
基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题
 收藏
 关注

X是一个n位数的正整数 (x=a0a1...an−1)

现在定义 F(x)=∏i=0n−1(ai!)  ,
比如F(135)=1!*3!*5!=720.

我们给定一个n位数的整数X(至少有一位数大于1,X中可能有前导0),

然后我们去找一个正整数(s)符合以下条件:

1.这个数尽可能大,

2.这个数中不能含有数字0或1。

3.F(s)=F(x)

Input
  1. 每个测试数据输入共2行。
  2. 第一行给出一个n,表示x为中数字的个数。(1<=n<=15)
  3. 第二行给出n位数的正整数X(X中至少有一位数大于1)
Output
  1. 共一行,表示符合上述条件的最大值。
Input示例
  1. 4
  2. 1234
Output示例
  1. 33222

很好玩的一个题目,尽量对2到9的阶乘用尽可能多的其他阶乘表示。

代码:

  1. #include <iostream>
  2. #include <algorithm>
  3. #include <cmath>
  4. #include <vector>
  5. #include <string>
  6. #include <cstring>
  7. #pragma warning(disable:4996)
  8. using namespace std;
  9.  
  10. int len;
  11. int out1[100006];
  12. int n,s_len;
  13. long long num;
  14.  
  15. void check(int x)
  16. {
  17. if(x==2)
  18. {
  19. out1[++n]=2;
  20. }
  21. else if(x==3)
  22. {
  23. out1[++n]=3;
  24. }
  25. else if(x==4)
  26. {
  27. out1[++n]=3;
  28. out1[++n]=2;
  29. out1[++n]=2;
  30. }
  31. else if(x==5)
  32. {
  33. out1[++n]=5;
  34. }
  35. else if(x==6)
  36. {
  37. out1[++n]=5;
  38. out1[++n]=3;
  39. }
  40. else if(x==7)
  41. {
  42. out1[++n]=7;
  43. }
  44. else if(x==8)
  45. {
  46. out1[++n]=7;
  47. out1[++n]=2;
  48. out1[++n]=2;
  49. out1[++n]=2;
  50. }
  51. else if(x==9)
  52. {
  53. out1[++n]=7;
  54. out1[++n]=3;
  55. out1[++n]=3;
  56. out1[++n]=2;
  57. }
  58.  
  59. }
  60.  
  61. void gao(string x)
  62. {
  63. int i,len1=x.length();
  64. for(i=0;i<s_len;i++)
  65. {
  66. check(x[i]-'0');
  67. }
  68. }
  69.  
  70. int main()
  71. {
  72. int i;
  73. string s;
  74.  
  75. cin>>s_len>>s;
  76.  
  77. n=0;
  78. gao(s);
  79. sort(out1+1,out1+1+n);
  80.  
  81. for(i=n;i>=1;i--)
  82. {
  83. cout<<out1[i];
  84. }
  85. cout<<endl;
  86. return 0;
  87. }

版权声明:本文为博主原创文章,未经博主允许不得转载。

51nod 1435:位数阶乘的更多相关文章

  1. 51nod 1435 位数阶乘 (手动计算)

    题目: 1435 位数阶乘 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 X是一个n位数的正整数 (x=a0a1...an−1) ...

  2. 51Nod:1003 阶乘后面0的数量

    1003 阶乘后面0的数量  基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题  收藏  关注 n的阶乘后面有多少个0? 6的阶乘 = 1*2*3*4*5*6 = 72 ...

  3. java实现第七届蓝桥杯阶乘位数

    阶乘位数 阶乘位数 9的阶乘等于:362880 它的二进制表示为:1011000100110000000 这个数字共有19位. 请你计算,9999 的阶乘的二进制表示一共有多少位? 注意:需要提交的是 ...

  4. 算法笔记_211:第七届蓝桥杯软件类决赛部分真题(Java语言A组)

    目录 1 阶乘位数 2 凑平方数 3 棋子换位 4 机器人塔 前言:以下代码仅供参考,若有错误欢迎指正哦~ 1 阶乘位数 阶乘位数 9的阶乘等于:362880 它的二进制表示为:10110001001 ...

  5. Problem 34

    Problem 34 https://projecteuler.net/problem=34 145 is a curious number, as 1! + 4! + 5! = 1 + 24 + 1 ...

  6. Project Euler 34 Digit factorials

    题意:判断一个数 N 的各个位数阶乘之和是否为其本身,找出所有符合要求的数然后求和 思路:此题思路跟 30 题相同,找到枚举上界 10 ^ n <= 9! × n ,符合要求的 n < 6 ...

  7. Codeforces Round #292 (Div. 2) C. Drazil and Factorial 515C

    C. Drazil and Factorial time limit per test 2 seconds memory limit per test 256 megabytes input stan ...

  8. 第七届蓝桥杯JavaA组国(决)赛部分真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.阶乘位数 阶乘位数 9的阶乘等于:362880 它的二进制表示为:1011000100110000000 这个数字共有19位. 请你计 ...

  9. 51nod 1058 N的阶乘的长度 位数公式

    1058 N的阶乘的长度基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注输入N求N的阶乘的10进制表示的长度.例如6! = 720,长度为3.Input输入N( ...

随机推荐

  1. Linux centosVMware 磁盘格式化、磁盘挂载、手动增加swap空间

    一.磁盘格式化 磁盘分区后不能直接使用,需要对每一个分区格式化,格式化其实就是安装系统文件. 命令mke2fs:不支持格式化成xfs系统文件  mkfs.ext4 == mke2fs -t ext4 ...

  2. Linux关于文件处理命令

    一.登陆用户和机器名称 示例:[root@hadoop01 ~]# root:表示用户名 @hadoop01表示机器名称 ~表示当前文件目录是家目录 #表示输入命令提示符,用户可以在其后输入命令:非r ...

  3. POJ 1979 Red and Black 四方向棋盘搜索

    Red and Black Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 50913   Accepted: 27001 D ...

  4. Vue中 v-for 绑定key和不绑定key的区别

    首先,它们区别主要在于 虚拟DOM的复用,绑定key可以更好的复用,下面来详细讲一下 假如我们有一个数组 arr = [1,2,3,4],我们要在2后面插入一个值9: 如果绑定了key值,那么会是这样 ...

  5. NO24 第三关--企业面试题

    [考试目的] 1.学生课后复习及预习情况. 2.未来实际工作中做人做事能力. 3.沟通及口头表达能力. [口头表达技能考试题] 1.描述linux的开机到登陆界面的启动过程(记时2分钟) *****L ...

  6. Luogu P3263 [JLOI2015]有意义的字符串

    Link 设\(e=\frac{b+\sqrt d}2,i=\frac{b-\sqrt d}2\). 显然\(f_n=e^n+i^n\)是一个整数,且\(f_n=(e+i)f_{n-1}+eif_{n ...

  7. HihoCoder第二周与POJ3630:Trie树的建立

    这又是两道一样的题,都是建立trie树的过程. HihoCoder第二周: 这里其实逻辑都很简单,主要在于数据结构struct的使用. #include <iostream> #inclu ...

  8. ROS常用库(三)API学习之常用common_msgs(上)

    一.概述 common_msgs包含其他ROS软件包广泛使用的消息.这些消息包括动作消息(actionlib_msgs),诊断消息(diagnostic_msgs),几何图元(geometry_msg ...

  9. SpringAOP源码跟踪及学习

    Spring 版本 4.3.2 在拿到 Bean 实例以后,会经历一系列的初始化工作,如:工厂回调.init 方法.后处理器在 Bean 初始化前后的处理等,在一般情况下(非 factory-meth ...

  10. Koa原理和封装

    相关文章 最基础 实现一个简单的koa2框架 实现一个简版koa koa实践及其手撸 Koa源码只有4个js文件 application.js:简单封装http.createServer()并整合co ...