奇妙数字(数论)题解
题目描述
让将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;
以上四种替换都是唯一对应的,所以不存在其他替换可能。
奇妙数字(数论)题解相关推荐
- 牛客题霸 [数组中只出现一次的数字] C++题解/答案
牛客题霸 [数组中只出现一次的数字] C++题解/答案 题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. 题解: 用map来记录每个数字出现几次, ...
- 牛客题霸 [ 旋转数组的最小数字] C++题解/答案
牛客题霸 [ 旋转数组的最小数字] C++题解/答案 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素. NOT ...
- 牛客题霸 [ 缺失数字] C++题解/答案
牛客题霸 [ 缺失数字] C++题解/答案 题目描述 从0,1,2,-,n这n+1个数中选择n个数,找出这n个数中缺失的那个数,要求O(n)尽可能小. 题解: 我们可以用map来标记已出现过的数字 因 ...
- 牛客题霸 [数组中出现次数超过一半的数字] C++题解/答案
牛客题霸 [数组中出现次数超过一半的数字] C++题解/答案 题解: 题意很明确 跑一遍for循环,统计每个数出现的大小 然后再跑一边循环,查看是否存在大于一半的情况 注意题目要求是大于,没有等于 代 ...
- C#版 - ZJNUoj1259 - 幸运数字——中高级 - 题解
版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C#版 - Z ...
- Leetcode738. 单调递增的数字[C++题解]:贪心,数学解法
文章目录 题目 思路 ac代码 参考 题目 https://leetcode-cn.com/problems/monotone-increasing-digits/ 思路 题目要求返回≤n的最大的.单 ...
- java 蓝桥杯历届试题 回文数字(题解)
试题 历届试题 回文数字 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的.这样的数字 ...
- LeetCode 面试题62. 圆圈中最后剩下的数字 详细题解
面试题62. 圆圈中最后剩下的数字 难度 简单 0,1,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字.求出这个圆圈里剩下的最后一个数字. 例如,0.1.2.3.4这5个数 ...
- 数字统计 题解(c++)
先看题目(当然,你可以看原题): 题目描述 请统计某个给定范围 [ L , R ] [L, R] [L,R]的所有整数中,数字 2 2 2 出现的次数. 比如给定范围 [ 2 , 22 ] [2, 2 ...
最新文章
- Quartz快速入门
- python中gt是什么意思_python--gt;函数基础
- mysql存储过程编写
- redhat server 5.3内核升极2.6.18 升级到 3.5 装systemtap 原创
- 游族网络:已获得《三体》系列小说游戏开发、改编等权利
- 设计师应该知道的配色工具,有效提高效率和审美
- 基于JAVA+SpringMVC+Mybatis+MYSQL的外卖点餐系统
- 《算法问题实战策略》-chaper21-树的实现和遍历
- 新版的Lync客户端无法用于老版的OCS服务器
- python路径怎么查看_:怎么查看python的安装路径
- 解决办法——Qtdemo软件无法加载example的问题
- Google各项产品汇总(附链接)
- c语言顺序栈的基本操作
- 用python做flash动画_Flash交互动画的制作(一)
- Poker Ⅱ 机械键盘使用说明书
- wpsmac历史版本_wps mac版|wps for mac官方下载免费完整版-太平洋下载中心
- 芜湖市市一中2021年高考成绩查询,2021年芜湖各高中录取分数线预测
- win7+VS2015+OpenCV3.20的搭建
- Ubuntu下PX4飞控开发环境搭建
- python vbs_python和vbs