16.好数python解法——2024年省赛蓝桥杯真题

问题描述
一个整数如果按从低位到高位的顺序,奇数位(个位、百位、万位…)上的数字是奇数,偶数位(十位、千位、十万位…)上的数字是偶数,我们就称之为“好数”。
给定一个正整数N,请计算从1到N一共有多少个好数。
输入格式
一个整数N。
输出格式
一个整数代表答案。
样例输入 1
24
样例输出 1
7
样例输入2
2024
样例输出 2
150
样例说明
对于第一个样例,24以内的好数有1、3、5、7、9、21、23,一共7个。

问题解析:

本体较为简单,属于入门级别的编程题,主要考察对应python中字符串处理相关函数的使用,如果你对于字符串处理这一块还是不怎么熟悉的话,皇上,哔哩哔哩大学传送门已经给您备好辣~

皇上您想要顺利的解决本题,需要掌握的python知识点如下:1,【Python字符串常用操作都在这里了】

2,【Python for循环详解】在本视频中,请着重关注【567】enumerate 这个关键字的使用方法哦

当你足够了解字符串处理相关,或者已经从哔哩哔哩大学进修归来,再读本题,相信当你读完这个题目时,应该在脑海中能够形成比较系统的解题思路了

没错!没错没错!

本题将借助 enumerate 来实现同时取出字符串中的字符及其下标,并借此实现判断奇数位和偶数位对应的数字是否符合题设要求:

奇数位(个位、百位、万位…)上的数字是奇数,偶数位(十位、千位、十万位…)上的数字是偶数

因此本题的解题思路即为:
1,设计函数,借助 for 循环 和 enumerate 来判断每一个位上的数字是否符合要求

2,设计函数,将所有范围内的满足要求的数字纳入计数

万事俱备,接下来我们开始编写相应的代码

代码描述:

1,首先,我们来实现检查每一位上的数字是否符合要求,这也是本题需要我们实现的核心部分:

def is_good_number(num):
    # 将数字转换为字符串,便于逐位处理
    num_str = str(num)
    length = len(num_str)
    
    for i, digit in enumerate(num_str): # 使用enumerate提取每一位数字及其对应的下标
        digit = int(digit)
        # 奇数位检查(从右到左,1到based):位索引 i 从 0 开始,因此 (length - i) 是 1到based 的位数
        if (length - i) % 2 == 1:  # 奇数位
            if digit % 2 == 0:  # 奇数位上的数字必须是奇数
                return False
        else:  # 偶数位
            if digit % 2 != 0:  # 偶数位上的数字必须是偶数
                return False
    return True # 没有提前跳出函数,说明该数字符合要求

2,其次,我们应该实现对于符合要求的数字的计数功能,本部分应结合判断数字是否合规的函数:is_good_number  实现,本部分较为简单,请看代码:

def count_good_numbers(N):
    count = 0 # 初始计数器为0
    for num in range(1, N + 1): # 遍历范围内所有的数
        if is_good_number(num): # 符合“好数”条件
            count += 1
    return count

3,最后,我们将上述代码进行综合:

def is_good_number(num):
    # 将数字转换为字符串,便于逐位处理
    num_str = str(num)
    length = len(num_str)
    
    for i, digit in enumerate(num_str): # 使用enumerate提取每一位数字及其对应的下标
        digit = int(digit)
        # 奇数位检查(从右到左,1到based):位索引 i 从 0 开始,因此 (length - i) 是 1到based 的位数
        if (length - i) % 2 == 1:  # 奇数位
            if digit % 2 == 0:  # 奇数位上的数字必须是奇数
                return False
        else:  # 偶数位
            if digit % 2 != 0:  # 偶数位上的数字必须是偶数
                return False
    return True # 没有提前跳出函数,说明该数字符合要求


def count_good_numbers(N):
    count = 0 # 初始计数器为0
    for num in range(1, N + 1): # 遍历范围内所有的数
        if is_good_number(num): # 符合“好数”条件
            count += 1
    return count


# 输入处理
if __name__ == "__main__":
    N = int(input().strip())
    print(count_good_numbers(N))

结果提交:

执行样例,通过:

将本部分代码提交蓝桥杯官网验证,得到结果如下:

那么对于本题,上述解法也是成功通过了(欢呼~)

在编写本题代码时,不知道同学们是否有其他更为巧妙的灵感buling闪现呢?欢迎在评论区交流或者私信博主哦~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/959452.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2025年数学建模美赛 A题分析(2)楼梯使用频率数学模型

2025年数学建模美赛 A题分析(1)Testing Time: The Constant Wear On Stairs 2025年数学建模美赛 A题分析(2)楼梯磨损分析模型 2025年数学建模美赛 A题分析(3)楼梯使用方向偏好模型 2025年数学建模美赛 A题分…

Redis实战(黑马点评)——涉及session、redis存储验证码,双拦截器处理请求

项目整体介绍 数据库表介绍 基于session的短信验证码登录与注册 controller层 // 获取验证码PostMapping("code")public Result sendCode(RequestParam("phone") String phone, HttpSession session) {return userService.sendCode(phone, session);}// 获…

Brightness Controller-源码记录

Brightness Controller 亮度控制 一、概述二、ddcutil 与 xrandr1. ddcutil2. xrandr 三、部分代码解析1. icons2. ui3. utilinit.py 一、概述 项目:https://github.com/SunStorm2018/Brightness.git 原理:Brightness Controlle 是我在 Ubuntu 发现上调…

STM32简介

STM32简介 STM32是ST公司基于ARMCortex-M内核开发的32位微控制器 (Microcontroller) MCU微控制器、MPU微处理器、CPU中央处理器 1.应用领域 STM32常应用于嵌入式领域。 如智能车:循迹小车 读取光电传感器或者摄像头的数据,…

qt-C++笔记之QLine、QRect、QPainterPath、和自定义QGraphicsPathItem、QGraphicsRectItem的区别

qt-C笔记之QLine、QRect、QPainterPath、和自定义QGraphicsPathItem、QGraphicsRectItem的区别 code review! 参考笔记 1.qt-C笔记之重写QGraphicsItem的paint方法(自定义QGraphicsItem) 文章目录 qt-C笔记之QLine、QRect、QPainterPath、和自定义QGraphicsPathItem、QGraphic…

浏览器IndexedDB占用大

使用鲁大师清理后,用 SpaceSniffer 查看C盘占用情况,发现浏览器的 IndexedDB 有3个文件夹占用特别大,从文件名看是 youku,bilibili,v.qq.com,浏览器的数据库并不需要长期保存,删除这3个文件夹&a…

MongoDB部署模式

目录 单节点模式(Standalone) 副本集模式(Replica Set) 分片集群模式(Sharded Cluster) MongoDB有多种部署模式,可以根据业务需求选择适合的架构和部署方式。 单节点模式(Standa…

将 OneLake 数据索引到 Elasticsearch - 第二部分

作者:来自 Elastic Gustavo Llermaly 及 Jeffrey Rengifo 本文分为两部分,第二部分介绍如何使用自定义连接器将 OneLake 数据索引并搜索到 Elastic 中。 在本文中,我们将利用第 1 部分中学到的知识来创建 OneLake 自定义 Elasticsearch 连接器…

Formality:时序变换(三)(相位反转)

相关阅读 Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482 一、引言 时序变换在Design Compiler的首次综合和增量综合中都可能发生,它们包括:时钟门控(Clock Gating)、寄存器合并(Register Merging)、…

php代码审计2 piwigo CMS in_array()函数漏洞

php代码审计2 piwigo CMS in_array()函数漏洞 一、目的 本次学习目的是了解in_array()函数和对项目piwigo中关于in_array()函数存在漏洞的一个审计并利用漏洞获得管理员帐号。 二、in_array函数学习 in_array() 函数搜索数组中是否存在指定的值。 in_array($search,$array…

房租管理系统的智能化应用助推租赁行业高效运营与决策优化

内容概要 在现代租赁行业中,房租管理系统的智能化应用正在逐步成为一个不可或缺的工具。通过整合最新技术,这些系统为租赁管理的各个方面提供了极大的便利和效率提升。从房源管理到合同签署再到财务监控,智能化功能能够帮助运营者在繁琐的事…

Hive关于数据库的语法,warehouse,metastore

关于数据库的语法 在default数据库下,查看其他数据库的表 in 打开控制台 字体大小的设置 Hive默认的库: default, 1/4说明一共有4个库,现在只展示了1个,单击>>所有架构 数据库的删除 方法一: 语法 删除有表的数据库,加cascade 方法二 当前连接的数据库 切换当前数据库…

【React】PureComponent 和 Component 的区别

前言 在 React 中,PureComponent 和 Component 都是用于创建组件的基类,但它们有一个主要的区别:PureComponent 会给类组件默认加一个shouldComponentUpdate周期函数。在此周期函数中,它对props 和 state (新老的属性/状态)会做一…

AI赋能医疗:智慧医疗系统源码与互联网医院APP的核心技术剖析

本篇文章,笔者将深入剖析智慧医疗系统的源码架构以及互联网医院APP背后的核心技术,探讨其在医疗行业中的应用价值。 一、智慧医疗系统的核心架构 智慧医疗系统是一个高度集成的信息化平台,主要涵盖数据采集、智能分析、决策支持、远程医疗等…

HTML-新浪新闻-实现标题-样式1

用css进行样式控制 css引入方式: --行内样式:写在标签的style属性中(不推荐) --内嵌样式:写在style标签中(可以写在页面任何位置,但通常约定写在head标签中) --外联样式&#xf…

【学习笔记】深度学习网络-深度前馈网络(MLP)

作者选择了由 Ian Goodfellow、Yoshua Bengio 和 Aaron Courville 三位大佬撰写的《Deep Learning》(人工智能领域的经典教程,深度学习领域研究生必读教材),开始深度学习领域学习,深入全面的理解深度学习的理论知识。 在之前的文章中介绍了深度学习中用…

如何在IDEA社区版Service面板中管理springboot项目

1、开启service仪表盘 2、在service仪表盘中,添加启动类配置项,专业版是SpringBoot 、社区版是application。 3、控制台彩色日志输出 右键启动类配置项,添加虚拟机参数 -Dspring.output.ansi.enabledALWAYS

如何在data.table中处理缺失值

📊💻【R语言进阶】轻松搞定缺失值,让数据清洗更高效! 👋 大家好呀!今天我要和大家分享一个超实用的R语言技巧——如何在data.table中处理缺失值,并且提供了一个自定义函数calculate_missing_va…

.NET9增强OpenAPI规范,不再内置swagger

ASP.NETCore in .NET 9.0 OpenAPI官方文档ASP.NET Core API 应用中的 OpenAPI 支持概述 | Microsoft Learnhttps://learn.microsoft.com/zh-cn/aspnet/core/fundamentals/openapi/overview?viewaspnetcore-9.0https://learn.microsoft.com/zh-cn/aspnet/core/fundamentals/ope…

【redis初阶】redis客户端

目录 一、基本介绍 二、认识RESP(redis自定的应用层协议名称) 三、访问github的技巧 四、安装redisplusplus 4.1 安装 hiredis** 4.2 下载 redis-plus-plus 源码 4.3 编译/安装 redis-plus-plus 五、编写运行helloworld 六、redis命令演示 6.1 通用命令的…