当前位置: 首页 > news >正文

2067C cf1500

题目描述:
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;
}
}
}

http://www.hskmm.com/?act=detail&tid=39464

相关文章:

  • 兼职日志-mysqlpython出图
  • 彻底清除浏览器缓存
  • 2025东莞包装机/自动包装机/半自动包装机厂家推荐垚林机械,精准高效耐用!
  • 使用pyautogui完成简单的游戏功能--皇室战争降杯
  • 2025 年 10 月系统门窗厂商榜单揭晓,专业系统智造与品牌保障口碑优选
  • 2025 年 10 月系统门窗厂商榜单揭晓,专业工艺制造与品牌保障口碑优选
  • 2025自动上料机厂家推荐东莞市垚林机械,高效输送精准控料!
  • Marchenko imaging-Kees Wapenaar-2014
  • MX-S 10-25 比赛总结
  • 7天阅读betaflight
  • 鱼书学习笔记
  • 2025年店铺装修设计施工一体化推荐榜单:服装店/化妆品店/火锅店/商场店/餐厅/健身房/美容美发/珠宝店等专业装修公司精选
  • 学弟模拟赛题解报告 - idle
  • XML-RPC接口安全漏洞分析与防护
  • InnoDB 存储引擎
  • 251025 模拟测 总结
  • 20232320 2025-2026-1 《网络与系统攻防技术》实验三实验报告
  • 2025年中央空调主机保养/维修/清洗/维保/维护公司推荐排行榜,水处理维保,物业公司/医院/写字楼/商场中央空调主机维保公司精选
  • [java 锁 02 - synchronized vs ReentrantLock ]
  • 10.26
  • AI Agent 与 Agentic AI 系统:真正的区别是什么?
  • 2025 年 10 月门窗十大品牌榜单揭晓,聚焦专业制造与品牌口碑的品质之选
  • [LangChain] 09.LCEL
  • 2025年饮料包装设备厂家权威推荐榜:缠膜机/吹瓶机/膜包机/杀菌机/水处理/套标机/贴标机/洗瓶机/卸垛机/旋盖机/液氮机/装箱机/灌装生产线/一条龙生产线/配件/灌装机
  • 算法与数据结构 9 - 重链剖分
  • 域登录态分享(类sso)
  • Spring Cloud Gateway网关路由配置 - AlanLee
  • Alibaba Cloud Linux 4 安装docker后,修复docker的方法
  • 重构学习认知:从听讲、践行到教学的启示
  • ssh原理