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

C/C++每日一练17

第一题:小乐乐改数字

题目描述:小乐乐获得了一个数字 n,他想把这个数字改成 m。每次操作可以将数字的某一位加 1 或减 1,求最少操作次数。算法原理:每个数位的修改是独立的,比如个位、十位等,修改某一位不会影响其他位。例如 n=123,m=456,个位 3 到 6 需 + 3,十位 2 到 5 需 + 3,百位 1 到 4 需 + 3,总操作 3+3+3=9 次。因此,直接遍历两个数字的每一位,用绝对值计算差值并累加,结果即为最少操作次数。代码:

cpp

运行

#include <iostream> #include <string> #include <cmath> using namespace std; int main() { string n, m; cin >> n >> m; int res = 0; for (int i = 0; i < n.size(); ++i) { res += abs(n[i] - m[i]); } cout << res << endl; return 0; }

第二题:十字爆破

题目描述:在 n×n 的网格中,每个格子有一个数字。选择一个格子进行 “十字爆破”,会使该格子所在行和列的所有数字变为 0,求爆破后网格中 0 的最大数量。算法原理:对每个格子 (x,y),计算爆破后 0 的总数。首先统计爆破前该行和该列已有的 0 的数量,注意 (x,y) 若本身是 0,会被重复统计,需减 1。爆破后新增的 0 数量为 “行长度 + 列长度 - 1”,加上原有 0 的数量就是总 0 数。遍历所有格子取最大值,且结果不能超过网格总格子数 n×n。代码:

cpp

运行

#include <iostream> #include <vector> using namespace std; int main() { int n; cin >> n; vector<vector<int>> grid(n, vector<int>(n)); for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { cin >> grid[i][j]; } } int max_zero = 0; for (int x = 0; x < n; ++x) { for (int y = 0; y < n; ++y) { int cnt = 0; for (int i = 0; i < n; ++i) { if (grid[i][y] == 0) cnt++; } for (int j = 0; j < n; ++j) { if (grid[x][j] == 0) cnt++; } if (grid[x][y] == 0) cnt--; int total = cnt + (n + n - 1); if (total > max_zero) max_zero = total; } } cout << min(max_zero, n * n) << endl; return 0; }

第三题:比那名居的桃子

题目描述:树上有 n 个桃子,每次可以摘 1 个或 2 个,求有多少种不同的摘法。算法原理:这是斐波那契数列问题。设 f (n) 为摘 n 个桃子的方法数,最后一次摘 1 个时,前面 n-1 个有 f (n-1) 种方法;最后一次摘 2 个时,前面 n-2 个有 f (n-2) 种方法,故递推公式 f (n)=f (n-1)+f (n-2)。边界条件:n=1 时 f (1)=1,n=2 时 f (2)=2。用迭代法计算 f (n),时间复杂度 O (n),空间复杂度 O (1)。代码:

cpp

运行

#include <iostream> using namespace std; int main() { int n; cin >> n; if (n == 1) { cout << 1 << endl; return 0; } int a = 1, b = 2; for (int i = 3; i <= n; ++i) { int c = a + b; a = b; b = c; } cout << b << endl; return 0; }
谢谢
http://www.jsqmd.com/news/1341691/

相关文章:

  • 【单片机毕业设计】基于 STM32/51 单片机的手动自动双模式加湿设备控制器设计 基于 STM32/51 单片机的阈值可调式环境加湿防护系统开发(011602)
  • 超光滑表面微纳工艺异常的精准检测, 白光干涉仪技术优势与应用实践
  • 3d-vehicle-tracking常见问题解答:新手必知的8个关键知识点
  • 揭秘道德黑客日常,合法合规的技术变现之路
  • 商超卡回收哪家价格高?2026年实测三大渠道,手把手教你避坑变现 - 沃卡回收
  • 如何用wav2vec2-large-xlsr-malayalam实现高效马拉雅拉姆语语音转文字?5分钟快速上手
  • 建站公司告诉你,网站建设包括哪些方面(全流程深度解析)
  • 杭州直播间装修需求激增,如何甄选专业团队?杭州天辰建筑装饰工程有限公司实力解读 - 品牌报告
  • Vibe Coding 深夜失控实录:我的 AI Agent 用 Claude Code 疯狂生成 200 个重复微服务
  • 计算机毕业设计之基于Spring Boot的社区老人健康信息管理系统设计与实现
  • 如何避开 AI 幻觉?盘点搭载真实参考文献能力的论文 AI 工具,解锁高质量高效论文创作 - 爱学习的肖博
  • 30天随笔10
  • 单应用下RabbitMQ如何保证线程安全,及多应用下抢数据问题
  • shadcn-solid与其他UI库对比:为什么它是SolidJS的最佳选择
  • 2026年金堂旅游的烟火气: 本地平台把山水古镇串成可抵达的日常 - 市场沸点
  • 第25章_HarmonyOs开发图解之 电话服务
  • 2026深圳GEO服务商对比盘点:GEO技术路线与选型指南 - 机客
  • 基于Python与Django的新闻舆情分析系统:从数据采集到可视化实战
  • Awesome Restic完全指南:发现30+顶级备份工具与资源
  • 应届生如何搭上低空经济红利?这份选岗指南请收好
  • 5 银行同业存单业务
  • LAION-5B数据集详解:CLIP-ViT-B-16-laion2B-s34B-b88K训练数据的机遇与挑战
  • 终极指南:PyTorch-Spectral-Normalization-GAN架构对比(DCGAN vs ResNet)
  • Dell PowerEdge 服务器苏州采购渠道对比|授权代理商甄别方法
  • 智能体安全实战:OpenClaw如何防范越权与供应链投毒
  • 技术深度拆解:激光光谱检测为何比传统传感器稳定性高出一个量级
  • 2026年8月青岛到东莞物流,究竟何时能预约提货?快来一探究竟!
  • 百分书童“讲题+同步”、作业帮搜题、学而思上课?一文看懂哪款AI学习软件真的适合孩子使用
  • 如何快速掌握ppInk:10个高效屏幕标注技巧与快捷键指南
  • YoloDotNet开源贡献指南:如何参与项目开发与改进