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

qy_蓝桥杯编程系列_编程17 好数

编程17 好数 简析

这题写起来说难不难,只是我卡了好几次所以写一篇梳理下思路

一、 题目引入

image

如图所示的题目,看起来也并不复杂,从数字尾端作奇数位开始往前算,奇数位和偶数位相交替,个位是奇数位,十位就是偶数位,百位是奇数位以此类推。一个数字N的奇数位和偶数位上对应为奇数和偶数就算作一个好数,我们需要求从1开始到N的一共有多少个这样的数即可。我的思路是两个循坏搞定。

二、 解题

先输入整数N,定义计数变量

N = int(input())
count = 0                # 统计符合条件的数字个数

进入第一层循坏之后,首先需要单独设定代表当前数字的变量current,以免用该数字遍历时所作修改影响外层循环遍历,然后需要设定标志变量,用于更改奇数和偶数位状态、当前是否为好数

for num in range(1, N + 1):current = numtarget_parity = 1         # 判定当前是奇数位还是偶数位,1-奇数位,0-偶数位is_good = 1               # 判定当前还是否为好数,1-好数,0-不是好数

然后对当前遍历的数字num进行判断,其奇数位和偶数位是否分别为奇数和偶数,用取余判断即可,循环整除以便确定这个数上的每一位

while current > 0:digit = current % 10current //= 10# 若当前为奇数位if target_parity == 1:if digit % 2 != 1:      # 奇数位上数字不为奇数时is_good = 0           # 不是好数break# 若当前为偶数位else:if digit % 2 != 0:      # 偶数位上不是偶数is_good = 0           # 不是好数break# current经过整除来到上一位,奇偶数位改变,奇偶数位判定相应切换target_parity = 1 - target_parity

第二层循环结束后可以根据is_good判断该数是否为好数

if is_good == 1:count += 1

此题难点在逻辑梳理上,需要理清楚两个循环和两个标志变量的关系,放在合适的位置,否则可能出现过多冗余甚至错误。

Tips:完整代码

N = int(input())
count = 0                # 统计符合条件的数字个数for num in range(1, N + 1):current = numtarget_parity = 1         # 判定当前是奇数位还是偶数位,1-奇数位,0-偶数位is_good = 1               # 判定当前还是否为好数,1-好数,0-不是好数while current > 0:digit = current % 10current //= 10# 若当前为奇数位if target_parity == 1:if digit % 2 != 1:      # 奇数位上数字不为奇数时is_good = 0           # 不是好数break# 若当前为偶数位else:if digit % 2 != 0:      # 偶数位上不是偶数is_good = 0           # 不是好数break# current经过整除来到上一位,奇偶数位改变,奇偶数位判定相应切换target_parity = 1 - target_parityif is_good == 1:count += 1print(count)
http://www.rkmt.cn/news/69137.html

相关文章:

  • 74_基于深度学习的垃圾桶垃圾溢出检测体系(yolo11、yolov8、yolov5+UI界面+Python项目源码+模型+标注好的数据集)
  • 【RAG安全】Pirates of the RAG: Adaptively Attacking LLMs to Leak Knowledge Bases - 指南
  • 20232319 2025-2026-1 《网络与系统攻防技术》实验八实验报告
  • 919191# B4358 [GESP202506 三级] 奇偶校验
  • 2025年必收藏的8款AI论文生成神器!高效写作轻松搞定
  • 2025 年黑猪批发基地品牌推荐排行榜,黑金刚黑猪批发,国寿黑猪批发,杜洛克黑猪批发,沂蒙黑猪批发,太湖原种黑猪批发,三元仔猪黑猪批发,长白仔猪黑猪养殖,黑猪繁育,黑猪仔猪批发,原种黑猪批发基地推荐
  • 补发读后感
  • 北京上门收酒的公司
  • 人工智能之数据分析 Pandas:第二章 Series
  • 暗黑2重制版(Diablo II Resurrected)——自制地图高速公路简化版 - dark
  • Nat Commun | DNALONGBENCH:基因组学长距离DNA预测任务的综合基准测试套件
  • 成群结队-冲刺日志(阶段二)
  • Nat Methods | Helixer:结合深度学习与隐马尔可夫模型的真核生物基因从头预测工具-获取蛋白质序列
  • P4390 [BalkanOI 2007] Mokia 摩基亚
  • 日总结 34
  • Avro
  • 关于C:scanf()的一些注意事项
  • 2025年产品动画制作公司最新推荐,聚焦资质、案例、售后的实力品牌深度解析!
  • 把一个软件窗口部分内容置顶 的软件下载
  • 哔哩哔哩野生API宝典:从入门到精通
  • 第2篇Scrum冲刺博客
  • PbootCMS 指定栏目标签详解与应用场景
  • 动态数组
  • 【Linux进阶系列】:线程(上) - 详解
  • Solon AI 开发学习8 - chat - Vision(理解)图片、声音、视频
  • Python全栈项目:基于Django的电子商务平台编写
  • 【触想智能】工业触控一体机在工业应用中扮演的角色以及其应用场景分析
  • 租房买房必看4门口乱堆杂物,正在悄悄“截断”全家人的好运气!
  • 大模型安全:共享 GPU 本地内存泄露
  • 2025年12月AI SEO优化公司推荐:解锁智能搜索流量新密码