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 Falseelse:  # 偶数位if digit % 2 != 0:  # 偶数位上的数字必须是偶数return Falsereturn True # 没有提前跳出函数,说明该数字符合要求

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

def count_good_numbers(N):count = 0 # 初始计数器为0for num in range(1, N + 1): # 遍历范围内所有的数if is_good_number(num): # 符合“好数”条件count += 1return 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 Falseelse:  # 偶数位if digit % 2 != 0:  # 偶数位上的数字必须是偶数return Falsereturn True # 没有提前跳出函数,说明该数字符合要求def count_good_numbers(N):count = 0 # 初始计数器为0for num in range(1, N + 1): # 遍历范围内所有的数if is_good_number(num): # 符合“好数”条件count += 1return count# 输入处理
if __name__ == "__main__":N = int(input().strip())print(count_good_numbers(N))

结果提交:

执行样例,通过:

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wxwidgets直接获取系统图标,效果类似QFileIconProvider

目前只做了windows版本&#xff0c;用法类似QFileIconProvider // 头文件 #ifndef WXFILEICONPROVIDER_H #define WXFILEICONPROVIDER_H#include <wx/wx.h> #include <wx/icon.h> #include <wx/image.h> #include <wx/bmpcbox.h> // Include for wxB…

微服务学习-服务调用组件 OpenFeign 实战

1. OpenFeign 接口方法编写规范 1.1. 在编写 OpenFeign 接口方法时&#xff0c;需要遵循以下规范 1.1.1.1. 接口中的方法必须使用 RequestMapping、GetMapping、PostMapping 等注解声明 HTTP 请求的类型。 1.1.1.2. 方法的参数可以使用 RequestParam、RequestHeader、PathVa…

鸿蒙模块概念和应用启动相关类(HAP、HAR、HSP、AbilityStage、UIAbility、WindowStage、window)

目录 鸿蒙模块概念 HAP entry feature har shared 使用场景 HAP、HAR、HSP介绍 HAP、HAR、HSP开发 应用的启动 AbilityStage UIAbility WindowStage Window 拉起应用到显示到前台流程 鸿蒙模块概念 HAP hap包是手机安装的最小单元&#xff0c;1个app包含一个或…

想品客老师的第六天:函数

函数基础的部分写在这里 函数声明 在js里万物皆对象&#xff0c;函数也可以用对象的方式定义 let func new Function("title", "console.log(title)");func(我是参数title); 也可以对函数赋值&#xff1a; let cms function (title) {console.log(tit…

Python:元组构造式和字典推导式

&#xff08;Python 元组构造式和字典推导式整理笔记&#xff09; 1. 元组构造式 1.1 创建元组 使用圆括号&#xff1a; tuple1 (1, 2.5, (three, four), [True, 5], False) print(tuple1) # 输出: (1, 2.5, (three, four), [True, 5], False) 省略圆括号&#xff1a; tup…

Linux之Tcp粘包笔记

目录 一.网络传输四层模型 二.数据传输中数据包传输的两个限制概念 三.数据传输的中粘包问题 四.数据组装的原因 Nagle算法原理: 五.关闭Nagle优化处理粘包问题吗&#xff1f; 六.粘包处理方法 a.设置消息边界&#xff1a; b.定义消息长度&#xff1a; 七.UDP是否会出…

【C语言算法刷题】第2题 图论 dijkastra

题目描述 一个局域网内有很多台电脑&#xff0c;分别标注为 0 ~ N-1 的数字。相连接的电脑距离不一样&#xff0c;所以感染时间不一样&#xff0c;感染时间用 t 表示。 其中网络内一台电脑被病毒感染&#xff0c;求其感染网络内所有的电脑最少需要多长时间。如果最后有电脑不…

软件测试压力太大了怎么办?

本文其实是知乎上针对一个问题的回答&#xff1a; 目前在做软件测试&#xff0c;主要负责的是手机端的项目测试&#xff0c;项目迭代很快&#xff0c;每次上线前验正式都会发现一些之前验测试包时候没有发现的问题&#xff0c;压力太大了&#xff0c;应该怎么调整 看过我之前其…

枚举与模拟 练习

练习题基于《C/C程序设计竞赛真题实战特训教程&#xff08;图解版&#xff09;》 目录 1.1 卡片 题目描述 代码实现 题解笔记 总评 注意点 重点解释 1.2 回文日期 题目描述 输入描述 输出描述 代码实现 题解笔记 总评 注意点 重点解释 1.1 卡片 题目描述 小蓝…

Redis高阶5-布隆过滤器

Redis布隆过滤器 ​ 由一个初始值都为零的bit数组和多个哈希函数构成&#xff0c;用来快速判断集合中是否存在某个元素 目的减少内存占用方式不保存数据信息&#xff0c;只是在内存中做一个是否存在的标记flag 布隆过滤器&#xff08;英语&#xff1a;Bloom Filter&#xff0…

vim如何设置自动缩进

:set autoindent 设置自动缩进 :set noautoindent 取消自动缩进 &#xff08;vim如何使设置自动缩进永久生效&#xff1a;vim如何使相关设置永久生效-CSDN博客&#xff09;

检测到联想鼠标自动调出运行窗口,鼠标自己作为键盘操作

联想鼠标会自动时不时的调用“运行”窗口 然后鼠标自己作为键盘输入 然后打开这个网页 &#xff08;不是点击了什么鼠标外加按键&#xff0c;这个鼠标除了左右和中间滚轮&#xff0c;没有其他按键了&#xff09;

(Halcon)轮廓等分切割(项目分析)

目标&#xff1a;获取绿色圆所在位置&#xff08;可用于点焊/点胶引导&#xff09; 实现思路 一&#xff0c;相机标定板标定&#xff08;如果实战用于点焊/点胶引导需要做图像畸变校正以减小误差&#xff09; 相机标定 如何做一个C#仿Halcon Calibration插件-CSDN博客 二&…

Java面试题2025-Mysql

1.什么是BufferPool&#xff1f; Buffer Pool基本概念 Buffer Pool&#xff1a;缓冲池&#xff0c;简称BP。其作用是用来缓存表数据与索引数据&#xff0c;减少磁盘IO操作&#xff0c;提升效率。 Buffer Pool由缓存数据页(Page) 和 对缓存数据页进行描述的控制块 组成, 控制…

开始步入达梦中级dba

分析内存使用需要的方法之一 disql /nolog conn sysdba/sysdbaselect value from v$parameter where nameMEMORY_LEAK_CHECK; SP_SET_PARA_VALUE(0,MEMORY_LEAK_CHECK,1); select * from V$MEM_REGINFO; select * from V$MEM_HEAP;

UE求职Demo开发日志#7 强化属性完善

1 实现思路设计 定义一个结构体记录技能树一个单元的信息&#xff0c;命名为FStrengthenCellInfo&#xff0c;一个TArray记录技能树整体信息&#xff0c;需要以下信息&#xff1a; 1.TArray前置技能index 2.FString 描述文本 3.TArray<FMyItemInfo>激活需要的物品ID和…

Qt中QVariant的使用

1.使用QVariant实现不同类型数据的相加 方法&#xff1a;通过type函数返回数值的类型&#xff0c;然后通过setValue来构造一个QVariant类型的返回值。 函数&#xff1a; QVariant mainPage::dataPlus(QVariant a, QVariant b) {QVariant ret;if ((a.type() QVariant::Int) &a…

做Midjourney最好图文教程-提示词公式以及高级参数讲解

先说Midjourney万能公式 填写在绘图提示词框里的内容就是提示词&#xff0c;也叫prompt 用途&#xff1a;让Midjourney生成对应图片&#xff08;符合提示词所描述内容的图片&#xff09;&#xff0c;控制图片生成方向种类&#xff1a;文本提示、图像提示、参数提示&#xff0…

【论文阅读】RAG-Reward: Optimizing RAG with Reward Modeling and RLHF

研究背景 研究问题&#xff1a;这篇文章要解决的问题是如何优化检索增强生成&#xff08;RAG&#xff09;系统&#xff0c;特别是通过奖励建模和人类反馈强化学习&#xff08;RLHF&#xff09;来提高大型语言模型&#xff08;LLMs&#xff09;在RAG任务中的效果。研究难点&…

《Trustzone/TEE/安全从入门到精通-标准版》

CSDN学院课程连接:https://edu.csdn.net/course/detail/39573 讲师介绍 拥有 12 年手机安全、汽车安全、芯片安全开发经验,擅长 Trustzone/TEE/ 安全的设计与开发,对 ARM 架构的安全领域有着深入的研究和丰富的实践经验,能够将复杂的安全知识和处理器架构知识进行系统整…