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

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

qy_蓝桥杯编程系列_编程17 好数
📅 发布时间:2026/6/19 10:51:08

编程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)

相关新闻

  • 74_基于深度学习的垃圾桶垃圾溢出检测体系(yolo11、yolov8、yolov5+UI界面+Python项目源码+模型+标注好的数据集)
  • 【RAG安全】Pirates of the RAG: Adaptively Attacking LLMs to Leak Knowledge Bases - 指南
  • 20232319 2025-2026-1 《网络与系统攻防技术》实验八实验报告

最新新闻

  • 命令行数据高效粘贴Excel:pandas与printmatrix实战指南
  • 2026茂名漏水检测维修精选优质服务商TOP5推荐!卫生间漏水/厨房漏水/屋顶天花板漏水/阳台漏水/地下室漏水防水补漏检测维修-正规防水补漏公司优选口碑榜测评推荐 - 即刻修防水
  • Kinetis KL27 ADC与通信接口电气特性深度解析与实战设计
  • 如何3步完成B站视频转文字:免费工具bili2text完全指南
  • 2026年叠螺污泥脱水设备厂家推荐:养殖场污粪处理/工业污泥脱水/废水回收/小型污泥处理设备供应商盘点 - 海棠依旧大
  • 2026芜湖漏水检测维修精选优质服务商TOP5推荐!卫生间漏水/厨房漏水/屋顶天花板漏水/阳台漏水/地下室漏水防水补漏检测维修-正规防水补漏公司优选口碑榜测评推荐 - 即刻修防水

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

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

关于尧图

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

服务项目

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

快速链接

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

联系方式

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

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