[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第81讲。
个位为0的数字,本题是2022年4月17日举办的第13届蓝桥杯青少组Python编程省赛真题编程部分第1题,13届一共举办了两次省赛,这是第一次省赛。题目要求编程统计1到N之间所有正整数中个位数为0的数量并输出。
先来看看题目的要求吧。
一.题目说明
编程实现:
统计1到N之间所有正整数中个位数为0的有几个?
例如:N = 21 时,1到21之间所有的正整数中个位数为0的数有2个,分别为:10,20。
输入描述:
输入一个正整数N。
输出描述:
输出1到N之间(包含N)所有正整数中个位数为0的有几个。
输入样例:
21
输出样例:
2
二.思路分析
这是一道基础题目,涉及的知识点包括循环、条件、字符串运算和取模运算等。
在Python编程中,要获取某个数字的个位,通常有如下两种方法:
-
字符串截取
-
数学方法
1. 字符串截取
在Python编程中,可以使用负数索引访问序列(如字符串、列表等)中的元素,它将从序列的结尾开始计数。
例如,-1表示最后一个元素,-2表示倒数第二个元素,依此类推。
如果要获取字符串的最后一位,直接使用s[-1]即可。
2. 数学方法
数学方法就是使用取模(余数)运算符%,只需要对10取模,得到的余数就是个位数。
思路有了,接下来,我们就进入具体的编程实现环节。
三.编程实现
根据上面的思路分析,我们使用两种方法编写程序:
-
字符串方法
-
数学方法
1. 字符串方法
根据前面的思路分析,编写代码如下:
代码比较简单,注意一点,在获取最后一个字符的时候,需要先使用str()函数将整数i转成字符串。
2. 数学方法
根据前面的思路分析,编写代码如下:
至此,整个程序就全部完成了,你可以输入不同的数据来测试效果啦。
四.总结与思考
本题代码在6行左右,涉及到的知识点包括:
-
循环语句;
-
条件语句;
-
字符串运算;
-
取模运算;
作为本次省赛的第一题,题目非常简单,关键有两点,一是要熟练掌握Python编程的基础,二是要灵活运算数学思维来解决问题。
字符串方法相对更简单,这是Python编程的特点,必须要掌握。数学方法则更加通用,适合所有的编程语言,也更加强大。
你还有什么好的想法和创意吗,也非常欢迎和超平老师分享探讨。
如果你觉得文章对你有帮助,别忘了点赞和转发,予人玫瑰,手有余香😄
需要源码的,可以移步至“超平的编程课”gzh。