题目来源: 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
每个测试数据输入共2行。
第一行给出一个n,表示x为中数字的个数。(1<=n<=15)
第二行给出n位数的正整数X(X中至少有一位数大于1)
Output
共一行,表示符合上述条件的最大值。
Input示例
4
1234
Output示例
33222

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

代码:

#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <string>
#include <cstring>
#pragma warning(disable:4996)
using namespace std; int len;
int out1[100006];
int n,s_len;
long long num; void check(int x)
{
if(x==2)
{
out1[++n]=2;
}
else if(x==3)
{
out1[++n]=3;
}
else if(x==4)
{
out1[++n]=3;
out1[++n]=2;
out1[++n]=2;
}
else if(x==5)
{
out1[++n]=5;
}
else if(x==6)
{
out1[++n]=5;
out1[++n]=3;
}
else if(x==7)
{
out1[++n]=7;
}
else if(x==8)
{
out1[++n]=7;
out1[++n]=2;
out1[++n]=2;
out1[++n]=2;
}
else if(x==9)
{
out1[++n]=7;
out1[++n]=3;
out1[++n]=3;
out1[++n]=2;
} } void gao(string x)
{
int i,len1=x.length();
for(i=0;i<s_len;i++)
{
check(x[i]-'0');
}
} int main()
{
int i;
string s; cin>>s_len>>s; n=0;
gao(s);
sort(out1+1,out1+1+n); for(i=n;i>=1;i--)
{
cout<<out1[i];
}
cout<<endl;
return 0;
}

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

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. 如何让浏览器的左上角显示自己的logo的小诀窍

    很简单,只需要在head头部加上以下代码 <link rel="icon" href="图片路径" type="image/x-icon&quo ...

  2. 解题报告:luogu P1516 青蛙的约会

    题目链接:P1516 青蛙的约会 考察拓欧与推式子\(qwq\). 题意翻译? 求满足 \[\begin{cases}md+x\equiv t\pmod{l}\\nd+y\equiv t\pmod{l ...

  3. PHP获取远程图片

    <?php // // Function: 获取远程图片并把它保存到本地 // // // 确定您有把文件写入本地服务器的权限 // // // 变量说明: // $url 是远程图片的完整UR ...

  4. 数据库同步和使用JSONObject让Java Bean“原地满状态复活”

    分类: [java]2013-11-28 21:04 729人阅读 评论(0) 收藏 举报 简介我为什么写这样一个简单的问题呢?首先介绍一下项目背景.最近需要做一个数据库同步的工作,也就是一个Web程 ...

  5. java string常用的占位符形式

        自己在这里总结了三种占位符形式:看下面代码即可 String stringFormat  = "lexical error at position %s, encountered % ...

  6. gitlab导入备份数据

    1.将南阳的gitlab 迁入到本地80虚拟机 由于本地ip地址没有固定,所以,是本地去拉取南阳的代码,虽然,之后固定了ip,但,由于只用一次这样的操作,所以,还是一直在做拉取而不是推送的工作 2.具 ...

  7. simplecheck

    环境:win10 工具:jadx .夜神模拟器.pycharm 下载好了之后加载到模拟器 输入正确的flag验证 加载到jadx.查看MainAtivity if语句进行验证是否正确,如果正确就输出y ...

  8. 使用JavaScript实现一个简单的编译器

    在前端开发中也会或多或少接触到一些与编译相关的内容,常见的有 将ES6.7代码编译成ES5的代码 将SCSS.LESS代码转换成浏览器支持的CSS代码 通过uglifyjs.uglifycss等工具压 ...

  9. git克隆项目后的操作

    使用https路径clone代码后,如果直接提交,会出现两个问题: 1. 提交的用户是操作系统登陆用户: 2. 需要重复输入用户名和密码: 一 设置用户名和邮箱 git config user.nam ...

  10. 创建一个TCP代理

    代理技术 代理一般被我们用于"穿墙",具体来说可以看这里,或者查wiki.理解代理背后的原理之后,便很容易知道,代理的作用不仅仅只是"穿墙".例如我们可以把经过 ...