首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
UVa 993 Product of Digits
📅 2026/10/15 10:01:40
✍️ 爱科研究院
👁 阅读 3,247
题目描述给定一个非负整数NNN要求找到一个最小的自然数QQQ使得QQQ的各位数字之积恰好等于NNN。若不存在这样的QQQ则输出−1-1−1。对于N0N 0N0和N1N 1N1的情况答案分别为000和111。输入格式输入的第一行包含一个正整数表示数据集的个数。接下来的每一行包含一个数据集即一个非负整数NNN满足0≤N≤1090 \le N \le 10^90≤N≤109。输出格式对于每个数据集输出一行包含对应的自然数QQQ若QQQ不存在则输出−1-1−1。样例输入3 1 10 123456789样例输出1 25 -1题目分析该问题要求构造一个最小的自然数QQQ使其各位数字的乘积等于给定的NNN。由于QQQ的每一位数字只能是000到999而000会使乘积变为000因此对于N0N 0N0的情况QQQ的每一位数字必须取自111到999。为了使QQQ最小需要满足两个条件第一QQQ的位数尽可能少第二在位数相同的情况下高位数字尽可能小。由于乘积固定为NNN将NNN分解为若干位数字的乘积时应优先使用较大的数字如999、888等因为大数字能更快地减少NNN的因子从而减少位数。当NNN无法被222到999中的任何数字整除且N1N 1N1时说明NNN含有大于999的质因子此时不存在满足条件的QQQ应输出−1-1−1。对于N0N 0N0和N1N 1N1直接输出000和111即可。解题思路对于每个输入NNN首先处理特殊情况若N0N 0N0或N1N 1N1直接输出NNN。对于N1N 1N1从数字999到222依次尝试整除NNN。若NNN能被某个数字iii整除则将iii添加到结果数字的最前面并令NN/iN N / iNN/i然后重新从999开始尝试。重复此过程直到N1N 1N1或无法再被任何数字整除。若最终N1N 1N1说明原数含有大于999的质因子输出−1-1−1否则输出构造出的数字字符串。由于每次选择尽可能大的数字得到的数字位数最少且因为每次将新数字插入到最前面最终得到的数字字符串即为满足条件的最小自然数。时间复杂度为O(logN)O(\log N)O(logN)空间复杂度为O(logN)O(\log N)O(logN)。代码实现// Product of digits// UVa ID: 993// Verdict: Accepted// Submission Date: 2016-01-09// UVa Run Time: 0.000s//// 版权所有C2017邱秋。metaphysis # yeah dot net#includebits/stdc.husingnamespacestd;intmain(intargc,char*argv[]){cin.tie(0);cout.tie(0);ios::sync_with_stdio(false);intcases,n;cincases;for(intc1;ccases;c){cinn;if(n0||n1){coutn\n;continue;}string digits;while(n1){boolupdatedfalse;for(inti9;i2;i--)if(n%i0){digits.insert(digits.begin(),0i);n/i;updatedtrue;break;}if(!updated)break;}if(n1)cout-1\n;elsecoutdigits\n;}return0;}总结本题的关键在于贪心策略从999到222依次分解NNN优先使用较大数字以减少结果位数并保证高位数字尽可能小。同时需要注意N0N 0N0和N1N 1N1的特殊情况以及当NNN含有大于999的质因子时输出−1-1−1。掌握数字分解与贪心构造的方法有助于解决类似的数字构造问题。
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/10/14 6:57:32
麦语言函数手册实战:从零构建可复现的量化指标脚本
2026/10/14 6:57:32
高专院校机器视觉课程实践方案:从OpenCV到工业检测项目的落地指南
2026/10/14 6:57:32
三菱PLC通讯协议那么多,到底该用哪个?
2026/10/15 9:59:24
Python自动化办公实战:Excel/Word/PDF/邮件四件套
2026/10/15 9:59:24
AWS云上安全最佳实践:从身份到数据的纵深防御链路
2026/10/15 9:59:24
RTK 代码上下文压缩工具:安装配置与实战指南
2026/10/15 9:59:24
如何拆解技术黑话:ponytail类模糊需求的工程化还原方法
2026/10/15 9:59:24
Kafka-ELK日志平台实战:高可靠数据流闭环构建指南
2026/10/15 9:54:22
关键牌找牌技术:数学魔术与记忆训练的核心原理
2026/10/15 0:02:59
AI Coding时代的柔性之美:从静态软件到自演化软件,软件研发正在重新进化
2026/10/15 0:02:59
亨得利客户服务中心官方网点分布一览:2026年全国多城门店地址与最新联系电话公布
2026/10/15 0:02:59
防关联浏览器哪个好?三款产品实测差异解析
2026/10/13 12:25:09
流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南
2026/10/14 18:35:19
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别
2026/10/14 14:52:59
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容
2026/10/15 1:07:55
我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
2026/10/15 5:07:59
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026/10/15 8:10:01
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)