各数位的乘积-第13届蓝桥杯国赛Python真题解析

文摘   教育   2024-07-01 20:45   湖北  

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第92讲。

各数位的乘积,本题是2022年5月29日举办的第13届蓝桥杯青少组Python编程国赛真题编程部分第1题。题目要求对于给定正整数N,请编程将N中各数位上的数字相乘,并输出其乘积。

先来看看题目的要求吧。

01
题目说明 

时间限制:3000MS

内存限制:589824K8

编程实现:

给定一个正整数N,然后将N中各数位上的数字相乘,并输出最后的乘积。

例如:N = 132,各数位相乘后的乘积为6(6 = 1 * 3 * 2)

输入描述:

给定一个正整数N

输出描述:

将N中各数位上的数字相乘,并输出最后的乘积

样例输入:

132

样例输出:

6

评分标准:

  • 10分:能正确输出一组数据;

  • 10分:能正确输出两组数据;

  • 10分:能正确输出三组数据。
02
思路分析 

这是一道简单题,涉及的知识点包括循环、字符串和运算符等。

题目比较简单,通常有如下三种解决方案:
  • 字符串方法
  • 列表方法
  • 拆位算法
字符串方法,就是直接遍历输入的字符串,然后将字符转成整数,进行累乘。表方法,就是将字符串转成整数列表,然后遍历列表进行累乘
拆位算法则是典型的数学方法,利用余数和整除运算,每一次通过%10运算,获取最低位,然后使用整除运算,去掉最低位,直到数字变为0。

思路有了,接下来,我们就进入具体的编程实现环节

03
编程实现 
根据上面的思路分析,我们使用三种方法来编写程序:
  • 字符串方法

  • 列表方法

  • 拆位算法

1. 字符串方法

使用字符串方法的代码如下:

代码非常,说明两点:

1). 字符串可以直接使用for...in循环遍历,得到的是每一个字符,然后使用int()函数将字符转成整数类型;

2). 在求乘积的时候,res的初始值要设置为1。

2. 列表方法

使用列表方法的代码如下:

这里使用了列表推导式的编程技巧,将字符串转成数字列表。

3. 拆位算法

拆位算法,需要用到取模和整除运算,代码如下:

代码也比较简单,说明两点:

1). 拆位是从低位开始的,每拆除一位,就舍弃一位,当n = 0时,就意味着拆位结束;

2). 在整除的时候,要使用整除运算符//,而不是/

至此,整个程序就全部完成了,你可以输入不同的数据来测试效果啦。
04
总结与思考 
本题代码在5行左右,涉及到的知识点包括:
  • 循环语句;

  • 字符串遍历;

  • 列表;

  • 运算符,包括*、//和%;

作为国赛的第一题,本题分值为30分,比较容易。关键是掌握字符串的特点,熟悉字符串的遍历运算。

本题给出了三种方法,实际上,前两种方法都是基于字符串的。在Python编程中,字符串和列表都属于可迭代对象,其用法基本差不多的。

需要注意的是拆位算法,代码稍微麻烦一点,但是具有通用性,支持所有的编程语言,是必须要掌握的简单算法。

你还有什么好的想法和创意吗,也非常欢迎和超平老师分享探讨。

如果你觉得文章对你有帮助,别忘了点赞和转发,予人玫瑰,手有余香😄

需要源码的,可以添加本人微信

另外,超平老师创建了一个蓝桥杯备考交流群,这是专门为老师和家长打造的免费社群,您可以与来自全国各地的老师、家长共同交流经验,分享学习心得。

超平老师也会给大家带来及时的赛事动态,备考攻略,真题资源分享,帮助各位更好备考第15届蓝桥杯赛事,力争取得优异的成绩。

扫码或长按加入微信群

超平的编程课
青少儿编程教育专家,中国人民大学硕士,大学讲师,曾任知名上市机构金牌讲师,16年编程教研经验。大耳猴少儿编程联合创始人,致力于通过编程教育提升孩子的逻辑思维、数学思维和计算思维,迎接AI时代。
 最新文章