三位数组合-第12届蓝桥杯选拔赛Python真题精选

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

三位数组合,本题是2020年9月20日举办的第12届蓝桥杯青少组Python编程选拔赛真题。题目要求编程统计所有三位数组合的个数,要求三位数是奇数,并且不能以0开头。

先来看看题目的要求吧。

一.题目说明

编程实现:

用户输入一个正整数N(3 <= N <= 9),从0到N之间的所有正整数(包含0和N)中选择三个,组成一个三位数(0不能作为百位数),且这个三位数为奇数,请计算出共有多少种满足条件的三位数组合。(注意:组成的每个三位数各个位上的数字不能重复)

输入描述:

输入一个正整数N(3 <= N <= 9)

输出描述:

输出满足条件的三位数组合的个数

样例描述:

用户输入的正整数为3,也就是将0,1,2,3四个数字进行组合,符合要求的三位数为:103, 123, 203, 213, 201, 231, 301, 321共8个,所以输出8。

样例输入:

3

样例输出:

8

评分标准:

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

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

  • 7分:能正确输出三组数据;

  • 8分:能正确输出四组数据。

二.思路分析

这是一道简单的排列组合题目,考查的知识点包括循环语句、条件语句、列表和取模运算等。

关于排列组合,在之前的选拔赛和省赛中都出现过,具体的分析可以参考如下两篇教程:

  • 《数字组合-第10届蓝桥杯省赛Python真题精选》

  • 《排列组合-第11届蓝桥杯选拔赛Python真题精选》

都是排列组合,因此我们可以使用枚举算法和组合函数两种方法来解决,对于这类问题,超平老师强烈建议使用组合函数。

当然,本题的情况要更复杂一点,主要有如下3点:

  • 待组合的数字和输入的N有关;

  • 0不能作为百位数;

  • 三位数必须为奇数;

因此,首先我们需要根据输入的整数N来构造列表,然后使用permutations()函数生成三位数组合,在生成组合的同时,将百位数为0和奇数的三位数过滤掉。

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

三.编程实现

根据上面的思路分析,我们编写程序如下:

图片

代码不多,强调三点:

1). 题目要求待排列数字包含0和N,所以在使用range()函数的时候,需要使用n+1,因为range()函数虎头蛇尾(包含头不包含尾);

2). 使用permutations()函数,返回的是一个可迭代对象,通常使用for..in进行遍历,遍历时得到的t是元组;

3). 元组t有3个元素,直接使用下标访问,t[0]表示百位,t[1]是十位,t[2]是个位,当t[0] > 0,就构造三位数x,如果x为奇数,就加入到res列表中。

至此,整个程序就全部完成了,你也可以输入不同的数字来测试效果。

四.总结与思考

本题代码在10行左右,涉及到的知识点包括:

  • 循环语句,主要for...in循环;

  • 条件语句,尤其是条件嵌套;

  • 列表和元组;

  • 组合函数;

本题难度一般,关键在于把问题分析清楚,然后使用permutations()函数简化组合的过程,同时将不符合要求的组合过滤掉。

如果不借助permutations()函数,我们需要使用枚举算法,通过嵌套循环来组合数字,代码会麻烦一些。

两相对比,你会发现使用permutations()函数代码要简洁不少,这不正是Python的优点嘛,它提供了大量好用的模块和库函数,我们在学习Python的时候要多掌握这些函数的使用,从而提高编程效率。

超平老师给你留一道思考题,对于本题的测试数据,有没有好的办法,做到快速测试呢?

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

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

需要源码的,可以移步至“超平的编程课”gzh。

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

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

相关文章

第17篇:七段数码管译码器

Q&#xff1a;之前我们设计实现的逻辑电路最终输出结果都是通过LED显示&#xff0c;本篇我们将实现用七段数码管来显示输出结果。 A&#xff1a;七段数码管显示基本原理&#xff1a;DE2-115开发板有8个共阳极数码管&#xff0c;即低电平逻辑值0点亮数码管段、逻辑值1来使数码管…

Linux第83步_采用“Linux内核定时器”点灯以及相关API函数

“Linux内核定时器”是采用“系统时钟”来实现的。它不是周期性运行的&#xff0c;一旦发生超时就会自动关闭。如果想要实现周期性定时&#xff0c;那么就需要在定时处理函数中重新开启定时器。 Limux内核使用全局变量jiffies来记录“系统从启动以来的系统节拍数”&#xff0c…

鸿蒙HarmonyOS应用开发—AbilityStage组件容器

AbilityStage是一个Module级别的组件容器&#xff0c;应用的HAP在首次加载时会创建一个AbilityStage实例&#xff0c;可以对该Module进行初始化等操作。 AbilityStage与Module一一对应&#xff0c;即一个Module拥有一个AbilityStage。 DevEco Studio默认工程中未自动生成Abil…

HWM豪迈电子听漏仪维修相关仪XMIC-lite DXmic-lite

漏水检测系列仪器维修Leakage ManagemHWM豪迈电子听漏仪维修XMIC-lite DXmic-liteent检测仪器包括&#xff1a;Xmic电子听漏仪维修、Xmic-lite电子听漏仪&#xff1b;DXmic&#xff1b;DXmic-lite等系列。也叫电子地面麦克风,用来放大水从带有压力的自来水管道中泄漏出来产生的…

小黑的Vue前端之路:js中通过构造函数封装,设置对象getter和setter方法

js中构造函数创建对象 JavaScript本身并不是设计成面向对象的,所以没有class之类的关键字用来定义类,但JavaScript本身相当灵活,可以利用function关键字来定义类并创建对象。 例如js创建person对象 通过new关键字&#xff0c;把函数当成了创建对象的构造函数 function Pers…

STM32学习笔记(6_7)- TIM定时器的编码器接口原理

无人问津也好&#xff0c;技不如人也罢&#xff0c;都应静下心来&#xff0c;去做该做的事。 最近在学STM32&#xff0c;所以也开贴记录一下主要内容&#xff0c;省的过目即忘。视频教程为江科大&#xff08;改名江协科技&#xff09;&#xff0c;网站jiangxiekeji.com 现在开…

如何在数字化转型中确保数据安全

随着科技的飞速发展&#xff0c;数字化转型已成为企业发展的必然趋势。数字化转型是指企业利用数字技术对业务流程、组织结构和商业模式进行全面创新和变革&#xff0c;以提高企业的竞争力和创新能力。然而&#xff0c;在数字化转型过程中&#xff0c;数据安全问题日益凸显&…

【C语言_函数_复习篇】

目录 一、C语言中函数的概念 二、库函数 2.1 库函数的概念 2.2 怎样自己学习库函数_以sqrt函数为例 三、自定义函数 3.1 自定义函数的语法形式 3.2 自定义函数的举例 3.3 自定义函数的实参 3.4 自定义函数的形参 3.5 自定义函数的实参和形参的关系 3.6 自定义函数中的return…

javaweb-配置优先级、bean管理和SpringBoot原理

javaweb原理&#xff01; 配置优先级 命令行参数的优先级要高于java系统属性 Bean管理 第三方bean SpringBoot原理 起步依赖的原理就是依赖传递 后端开发总结 原来SSM是这三个&#xff01;&#xff01;&#xff01; Maven高级 maven构建和管理ja…

浅谈电商网络爬虫技术

摘 要 目前网络上存在着海量的数据资料&#xff0c;将这些数据爬取保存下来&#xff0c;并进行进一步操作&#xff0c;即可挖掘出数据的潜在价值。如今的互联网存在的缺陷是用户很难获得有用的数据资料&#xff0c;虽然传统的搜索引擎可以为用户返回大量信息&#xff0c;但是…

会话式AI定制化营销的力量

智能革命&#xff1a;如何用会话式AI提高品牌影响力&#xff1f; 在人工智能时代&#xff0c;营销活动计划应充分利用AI技术&#xff0c;比如数据分析、个性化推荐、智能客服等&#xff0c;以提高营销活动的针对性和效率。同时&#xff0c;创意和用户体验依然是吸引用户的关键&…

【Linux实践室】Linux用户管理实战指南:用户密码管理操作详解

&#x1f308;个人主页&#xff1a;聆风吟_ &#x1f525;系列专栏&#xff1a;Linux实践室、网络奇遇记 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 一. ⛳️任务描述二. ⛳️相关知识2.1 &#x1f514;用户密码存放地及方式2.2 &#x1f514;使用…

【数据分享】1929-2023年全球站点的逐日平均海平面压力(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、能见度等指标&#xff0c;说到气象数据&#xff0c;最详细的气象数据是具体到气象监测站点的数据&#xff01; 有关气象指标的监测站点数据&#xff0c;之前我们分享过1929-2023年全球气象站…

solr-lucene的解释

什么是solr-lucene Solr是一个基于Apache Lucene的开源搜索平台。Lucene是一个开源的全文搜索引擎库&#xff0c;它提供了一个简单而强大的API&#xff0c;用于索引和搜索文档。Solr通过在Lucene的基础上构建一个更高级的搜索平台&#xff0c;为用户提供了更丰富的功能和易于使…

代码随想录——在排序数组中查找元素的第一个和最后一个位置(Leetcode34)需要回顾

题目链接 class Solution {public int[] searchRange(int[] nums, int target) {// count记录数组中与target相等的个数int count 0;// index记录最后一个与target相等的数组下标&#xff0c;先赋值-1证明没有与之相等的数组元素int index -1;// 返回数组arrint[] arr new…

行业分析:2024年全球CRM九大发展趋势预测,洞悉未来!

2024年全球CRM行业发展九大预测&#xff1a;以客户为中心、重视CRM采用率、与业务深度融合的AI、一体化平台、行业垂类解决方案CRM、集中数据&#xff0c;驱动业务、低代码PaaS、在客户服务中寻求人机平衡、不同规模企业应用特点区别明显。 每到年初&#xff0c;作为Gartner魔力…

Netty学习——源码篇7 Pipeline的事件传播机制1 备份

上篇&#xff1a;Netty学习——源码篇6 Pipeline设计原理 已经知道AbstractChannelHandlerContext中有Inbound和Outbound两个boolean变量&#xff0c;分别用于识别Context所对应的Handler的类型。 1、Inbound为true时&#xff0c;表示其对应的ChannelHandler是ChannelInboundHa…

考了PMP证后工资大概是多少 ?

PMP自1999年引入国内以来&#xff0c;大家对这个证书的了解并不深&#xff0c;每年考试的人数也不多。但随着越来越多的企业认可PMP认证&#xff0c;目前考证的人数不断增加&#xff0c;几乎所有与项目管理相关的人都知道这个证书的重要性。这个证书在招聘要求中出现频率较高&a…

小红的炸砖块

题目描述 小红正在玩一个“炸砖块”游戏&#xff0c;游戏的规则如下&#xff1a; 初始有一个n∗m的砖块矩阵。小红会炸k次&#xff0c;每次会向一个位置投炸弹&#xff0c;如果这个位置有一个砖块&#xff0c;则砖块消失&#xff0c;上方的砖块向下落。 小红希望你画出最终砖块…

StringBuffer和大数值

读取 import java.util.Scanner;public class index{public static void main(String[] args){Scanner in new Scanner(System.in);System.out.println("Whats your name?");String name in.nextLine();Scanner inage new Scanner(System.in);System.out.printl…