[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第92讲。
先来看看题目的要求吧。
时间限制:3000MS
内存限制:589824K8
编程实现:
给定一个正整数N,然后将N中各数位上的数字相乘,并输出最后的乘积。
例如:N = 132,各数位相乘后的乘积为6(6 = 1 * 3 * 2)
输入描述:
给定一个正整数N
输出描述:
将N中各数位上的数字相乘,并输出最后的乘积
样例输入:
132
样例输出:
6
评分标准:
10分:能正确输出一组数据;
10分:能正确输出两组数据;
10分:能正确输出三组数据。
这是一道简单题,涉及的知识点包括循环、字符串和运算符等。
字符串方法 列表方法 拆位算法
思路有了,接下来,我们就进入具体的编程实现环节。
字符串方法
列表方法
拆位算法
1. 字符串方法
使用字符串方法的代码如下:
代码非常,说明两点:
1). 字符串可以直接使用for...in循环遍历,得到的是每一个字符,然后使用int()函数将字符转成整数类型;
2). 在求乘积的时候,res的初始值要设置为1。
2. 列表方法
使用列表方法的代码如下:
这里使用了列表推导式的编程技巧,将字符串转成数字列表。
3. 拆位算法
拆位算法,需要用到取模和整除运算,代码如下:
代码也比较简单,说明两点:
1). 拆位是从低位开始的,每拆除一位,就舍弃一位,当n = 0时,就意味着拆位结束;
2). 在整除的时候,要使用整除运算符//,而不是/。
循环语句;
字符串遍历;
列表;
运算符,包括*、//和%;
作为国赛的第一题,本题分值为30分,比较容易。关键是掌握字符串的特点,熟悉字符串的遍历运算。
本题给出了三种方法,实际上,前两种方法都是基于字符串的。在Python编程中,字符串和列表都属于可迭代对象,其用法基本差不多的。
需要注意的是拆位算法,代码稍微麻烦一点,但是具有通用性,支持所有的编程语言,是必须要掌握的简单算法。
你还有什么好的想法和创意吗,也非常欢迎和超平老师分享探讨。
需要源码的,可以添加本人微信。
另外,超平老师创建了一个蓝桥杯备考交流群,这是专门为老师和家长打造的免费社群,您可以与来自全国各地的老师、家长共同交流经验,分享学习心得。
超平老师也会给大家带来及时的赛事动态,备考攻略,真题资源分享,帮助各位更好地备考第15届蓝桥杯赛事,力争取得优异的成绩。
扫码或长按加入微信群