题目描述

让将F(x)定义为其数字的阶乘积。例如,F(124)=1!*2!*4!=48

首先,选择一个由n位数字组成的十进制数字a,该数字至少包含一个大于1的数字。该数字可能以前导零开头。然后,他们应该找到满足以下两个条件的最大正数x:

1. x既不包含数字0也不包含数字1

2. F(x)=F(a)

输入

第一行包含一个整数 n(1≤ n ≤15)

第二行包含一个数字a,其中至少有一个大于1的数字,数字a可能包含前导零。

输出

输出一个整数,此数字不能包含0和1

样例输入

4
1324

样例输出

33222

提示

F(1324)=1!*3!*2!*4!=F(33222)

AC代码

#include<algorithm>
#include<vector>
#include<string>
#include<iostream>
using namespace std;
int main()
{   int n;cin>>n;string a;cin>>a;//可删可不删// for(int i=0;i<n;i++)// {//     if(a[i]=='1'||a[i]=='0')//     a.erase(i,1);//从字符串第i个位置中删除1个字符// }vector<int> ans;for(int i=0;i<a.length();i++){if(a[i]=='2') ans.push_back(2);if(a[i]=='3') ans.push_back(3);if(a[i]=='4') ans.push_back(2),ans.push_back(2),ans.push_back(3);if(a[i]=='5') ans.push_back(5);if(a[i]=='6') ans.push_back(5),ans.push_back(3);if(a[i]=='7') ans.push_back(7);if(a[i]=='8') ans.push_back(2),ans.push_back(2),ans.push_back(2),ans.push_back(7);if(a[i]=='9') ans.push_back(2),ans.push_back(3),ans.push_back(3),ans.push_back(7);}sort(ans.begin(),ans.end());for(int i=ans.back();!ans.empty();i=ans.back()){ans.pop_back();cout<<i;}return 0;
}

注意

这题是有规律的。

当某一位是4时,则对应的换成2,2,3就行。因为4! = 2!+ 2!+ 3!。

同理:

是6时,换成3,5;

是8时,换成2,2,2,7;

是9时,换成2,3,3,7;

以上四种替换都是唯一对应的,所以不存在其他替换可能。

奇妙数字(数论)题解相关推荐

  1. 牛客题霸 [数组中只出现一次的数字] C++题解/答案

    牛客题霸 [数组中只出现一次的数字] C++题解/答案 题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. 题解: 用map来记录每个数字出现几次, ...

  2. 牛客题霸 [ 旋转数组的最小数字] C++题解/答案

    牛客题霸 [ 旋转数组的最小数字] C++题解/答案 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素. NOT ...

  3. 牛客题霸 [ 缺失数字] C++题解/答案

    牛客题霸 [ 缺失数字] C++题解/答案 题目描述 从0,1,2,-,n这n+1个数中选择n个数,找出这n个数中缺失的那个数,要求O(n)尽可能小. 题解: 我们可以用map来标记已出现过的数字 因 ...

  4. 牛客题霸 [数组中出现次数超过一半的数字] C++题解/答案

    牛客题霸 [数组中出现次数超过一半的数字] C++题解/答案 题解: 题意很明确 跑一遍for循环,统计每个数出现的大小 然后再跑一边循环,查看是否存在大于一半的情况 注意题目要求是大于,没有等于 代 ...

  5. C#版 - ZJNUoj1259 - 幸运数字——中高级 - 题解

    版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C#版 - Z ...

  6. Leetcode738. 单调递增的数字[C++题解]:贪心,数学解法

    文章目录 题目 思路 ac代码 参考 题目 https://leetcode-cn.com/problems/monotone-increasing-digits/ 思路 题目要求返回≤n的最大的.单 ...

  7. java 蓝桥杯历届试题 回文数字(题解)

    试题 历届试题 回文数字 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的.这样的数字 ...

  8. LeetCode 面试题62. 圆圈中最后剩下的数字 详细题解

    面试题62. 圆圈中最后剩下的数字 难度 简单 0,1,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字.求出这个圆圈里剩下的最后一个数字. 例如,0.1.2.3.4这5个数 ...

  9. 数字统计 题解(c++)

    先看题目(当然,你可以看原题): 题目描述 请统计某个给定范围 [ L , R ] [L, R] [L,R]的所有整数中,数字 2 2 2 出现的次数. 比如给定范围 [ 2 , 22 ] [2, 2 ...

最新文章

  1. Quartz快速入门
  2. python中gt是什么意思_python--gt;函数基础
  3. mysql存储过程编写
  4. redhat server 5.3内核升极2.6.18 升级到 3.5 装systemtap 原创
  5. 游族网络:已获得《三体》系列小说游戏开发、改编等权利
  6. 设计师应该知道的配色工具,有效提高效率和审美
  7. 基于JAVA+SpringMVC+Mybatis+MYSQL的外卖点餐系统
  8. 《算法问题实战策略》-chaper21-树的实现和遍历
  9. 新版的Lync客户端无法用于老版的OCS服务器
  10. python路径怎么查看_:怎么查看python的安装路径
  11. 解决办法——Qtdemo软件无法加载example的问题
  12. Google各项产品汇总(附链接)
  13. c语言顺序栈的基本操作
  14. 用python做flash动画_Flash交互动画的制作(一)
  15. Poker Ⅱ 机械键盘使用说明书
  16. wpsmac历史版本_wps mac版|wps for mac官方下载免费完整版-太平洋下载中心
  17. 芜湖市市一中2021年高考成绩查询,2021年芜湖各高中录取分数线预测
  18. win7+VS2015+OpenCV3.20的搭建
  19. Ubuntu下PX4飞控开发环境搭建
  20. python vbs_python和vbs

热门文章

  1. git bash里ln -s
  2. lij IDEA项目包分层结构显示设置
  3. 详解springcloud微服务技术栈(一)
  4. 一元函数微分学中的极限,可导,连续,可微的定义和理解
  5. Yuan先生博客-Django进阶
  6. 如何显示文件后缀名(来源 百度)
  7. ubuntu 安装openssl-devel
  8. C++中armadillo矩阵库使用说明
  9. Java中Math.ceil()方法具有什么功能呢?
  10. 快来直播帮您了解移动互联网的未来发展趋势