尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

2067C cf1500

2067C  cf1500
📅 发布时间:2026/6/26 2:38:59

题目描述:
C. 九进制问题
时间限制:每个测试2秒
内存限制:每个测试256兆字节
给定一个正整数 n。每次操作中,你可以给 n 加上任意一个十进制表示仅由数字 9 组成的正整数(数字 9 可以重复出现多次)。
请问至少需要进行多少次操作,才能使得数字 n 的十进制表示中至少出现一个数字 7?
例如,当 n=80 时,只需进行一次操作:你可以给 n 加上 99,操作后 n=179,其中包含了数字 7。
输入
每个测试包含多个测试用例。第一行包含测试用例数量 t(1≤t≤10^4)。接下来是每个测试用例的描述。
每个测试用例只有一行,包含一个整数 n(10≤n≤10^9)。
输出
对于每个测试用例,输出使数字 n 包含数字 7 所需的最少操作次数。
解题思路:
1.加上任意一个只有9构成的数字,999,99可以,但是99900不可以,也就是说加上了10的幂-1,所以如果进行最少l次操作找到7的话,
最终数字= n + l × (999...9)
= n + l × (10^k - 1) // 因为 999...9 = 10^k - 1
= (n - l) + l × 10^k
等价于对n-l执行某个位置加1的操作,这样for循环遍历每一位看是否可以,如若加的是9构成的数字,对某一位进行判断时会受到其他位影响,难以得出准确结果,如果当前位变成7的操作小于操作数l代表可以,并且不用再统计原本为8和9的位置,因为由8和9到的是17操作次数过多,l是从0到9,所以不用担心n-l里只有8和9的情况。
核心代码实现:
void solve() {
int n;
cin >> n;
for (int l = 0; l <= 9; l++) {
string s = to_string(n - l);
int md = 0;
for (auto c: s) {
if (c <= '7') {
md = max(md, c - '0');
}
}
if (l >= 7 - md) {
cout << l << '\n';
return;
}
}
}

相关新闻

  • 兼职日志-mysqlpython出图
  • 2025自动上料机厂家推荐东莞市垚林机械,高效输送精准控料!
  • Marchenko imaging-Kees Wapenaar-2014

最新新闻

  • RAG创新了,MCompassRAG装上了语义指南针
  • Faster-Whisper-GUI技术适配突破:日语语音识别6.3倍性能提升的实现路径
  • PVE Tools终极指南:让Proxmox VE管理变得简单高效的完整工具箱
  • LLM混合架构优化:量化、剪枝与蒸馏的工程化协同
  • 被坑惨了!TypeScript 类型体操实战:我用 3 行代码干掉了 2000 行的 if-else
  • 从CWE到CVE:构建主动安全防御体系的核心逻辑与实践

日新闻

  • Qwen2.5-Turbo百万上下文实战指南:百炼平台长文本处理全解析
  • 怎么监控对标账号更新,2026年作者监控工作流,5款深度对比
  • EdgeRemover:专业级Windows Edge浏览器管理工具,彻底解决顽固软件卸载难题

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号