image

编辑人: 独留清风醉

calendar2025-06-06

message3

visits431

第12届蓝桥杯C++青少组中/高级组选拔赛2020年10月25日真题答案及解析

一、实操题

1、编程实现:

输入一个正整数N(1<N<20000),输出1到N之间所有正整数的和(包含1和N)。

输入描述:

输入一个正整数N(1<N<20000)

输出描述:

输出1到N之间所有正整数的和(包含1和N)


样例输入:

3

样例输出:

6

参考答案:br />```pythonn = int(input())sum = 0for i in range(1, n+1):sum += iprint(sum)```

解析:【喵呜刷题小喵解析】
这个题目要求我们编写一个程序,输入一个正整数N(1
我们可以使用Python编程语言来实现这个程序。首先,我们需要从用户那里获取输入,即正整数N。然后,我们使用一个循环从1遍历到N,将每个数字加到变量sum中。最后,我们输出变量sum的值,即1到N之间所有正整数的和。

在Python中,我们可以使用input()函数从用户那里获取输入,并使用int()函数将输入的字符串转换为整数。然后,我们可以使用for循环来遍历1到N之间的所有数字,并使用+=运算符将每个数字加到变量sum中。最后,我们可以使用print()函数输出变量sum的值。

注意,在Python中,变量名应该以字母开头,不能以数字开头。因此,我们将变量sum命名为sum,而不是Sum或SUM。

2、编程实现:

输入一段英文(包含字母和“.”),分别统计出这段英文字符串共有多少个字符(包含字母和“.”)及“.”出现的次数。

输入描述:

输入一段英文字符串(字符串长度<100)

输出描述:

第一行输出字符总个数

第二行输出“.”在这段英文串中出现的次数


样例输入:

aaa.

样例输出:

4
1

参考答案:br />```pythondef count_characters(input_string):total_chars = len(input_string)dot_count = input_string.count('.')print(total_chars)print(dot_count)# 读取输入input_string = input()# 调用函数count_characters(input_string)```

解析:【喵呜刷题小喵解析】

该题目要求编程实现输入一段英文字符串,统计出这段英文字符串共有多少个字符(包含字母和`.`)及`.`出现的次数。

首先,我们定义一个函数`count_characters`,该函数接受一个字符串作为输入。在函数内部,我们使用`len`函数计算字符串的长度,即字符总数。然后,我们使用字符串的`count`方法统计`.`出现的次数。最后,我们使用`print`函数输出这两个结果。

在主程序中,我们使用`input`函数读取用户输入的字符串,并调用`count_characters`函数进行统计和输出。

注意,题目中要求字符串长度小于100,但在实际编程中,我们不需要显式地检查字符串长度,因为Python的`len`和`count`函数可以处理任意长度的字符串。

3、编程实现:

连续输入5个正整数(0<正整数<1001),正整数之间以一个空格隔开,然后将这五个正整数按照从大到小的顺序输出(输出的正整数之间以一个英文逗号隔开)。

输入描述:

连续输入5个正整数(0<正整数<1001)分别以一个空格隔开

输出描述:

按照从大到小的顺序输出且每个正整数之间用一个英文逗号隔开


样例输入:

3 2 5 5 4

样例输出:

5,5,4,3,2

参考答案:br />```python# 输入5个正整数nums = list(map(int, input().split()))# 排序nums.sort(reverse=True)# 输出print(','.join(map(str, nums)))```

解析:【喵呜刷题小喵解析】

首先,我们需要从用户那里获取5个正整数,并将它们存储在一个列表中。这可以通过使用`input()`函数和`split()`方法来实现,`split()`方法将输入的字符串按照空格分割成一个列表,然后`map()`函数和`int()`函数将列表中的字符串转换成整数。

然后,我们可以使用Python内置的`sort()`函数对列表进行排序。`sort()`函数的`reverse`参数设置为`True`,表示我们想要按照降序排序。

最后,我们使用`join()`函数将排序后的列表转换成一个字符串,列表中的每个元素之间用英文逗号隔开。然后,使用`print()`函数输出这个字符串。

4、提示信息:

倍数与约数:如果a能被b整除,a就叫做b的倍数,b就叫做a的约数。约数和倍数都表示一个整数与另一个整数的关系,不能单独存在。

最大公约数:几个整数中公有的约数,叫做这几个数的公约数;其中最大的一个,叫做这几个数的最大公约数。

举例:12、16的公约数有1、2、4,其中最大的一个是4,所以4是12与16的最大公约数。

最小公倍数:几个自然数公有的倍数,叫做这几个数的公倍数,其中最小的一个,叫做这几个数的最小公倍数。

举例:4的倍数有4、8、12、16,……,6的倍数有6、12、18、24,……,4和6的公倍数有12、24,……,其中最小的是12,所以4和6最小公倍数为12。

题目描述:

分别输入两个正整数(1<正整数<201),输出这两个正整数的最大公约数M及最小公倍数N(注:M和N输出到一行,之间以一个英文逗号隔开)。

输入:

第1行输入第一个正整数

第2行输入第二个正整数

输出:

输出这两个正整数的最大公约数M及最小公倍数N(M和N输出到一行,之间以一个英文逗号隔开)      


样例输入:

4
6

样例输出:

2,12

参考答案:输入两个正整数,输出它们的最大公约数M及最小公倍数N。

解析:【喵呜刷题小喵解析】:
本题要求输入两个正整数,并输出它们的最大公约数M和最小公倍数N。最大公约数是两个或多个整数共有的最大的约数,最小公倍数是两个或多个整数共有的最小的公倍数。

根据题目描述,我们可以使用欧几里得算法来求两个数的最大公约数,使用两数之积除以它们的最大公约数来求最小公倍数。

具体步骤如下:

1. 输入两个正整数a和b。
2. 使用欧几里得算法求a和b的最大公约数M。
3. 计算最小公倍数N = a * b / M。
4. 输出M和N,中间用英文逗号隔开。

在样例输入中,输入的两个正整数是4和6,它们的最大公约数是2,最小公倍数是12。因此,输出应该是2,12。

5、提示信息:

因数:整数A乘以整数B得到整数C,整数A与整数B都称做整数C的因数。

一个自然数如果除了1和它本身没有其他因数叫做质数。如果除了1和它本身还有别的因数叫做合数。

例如:3是质数(因数1和3),6是合数(因数1,2,3,6)。

编程实现:

输入一个正整数n(3 ≤ n ≤ 100),请编程求出具有n个不同因数的最小合数,并输出。

例如:n=3,含有3个不同因数的合数有:4,9,25,49......,其中最小的合数为4

输入:

输入一个正整数(3 ≤ n ≤ 100)

输出:

输出 具有n个不同因数的最小合数


样例输入:

3

样例输出:

4

参考答案:对于给定的正整数n,我们需要找到具有n个不同因数的最小合数。首先,我们可以从最小的合数4开始,检查每个数是否有n个不同的因数。对于每个数,我们可以从1开始,检查每个数是否是当前数的因数,直到找到n个不同的因数。当找到n个不同的因数时,我们就可以返回这个数,这就是具有n个不同因数的最小合数。

解析:【喵呜刷题小喵解析】:
本题是一个求解具有n个不同因数的最小合数的问题。对于这种问题,我们可以采用试错法来求解。

首先,我们知道最小的合数是4,所以我们从4开始,检查每个数是否有n个不同的因数。

对于每个数,我们可以从1开始,检查每个数是否是当前数的因数。如果当前数i是当前检查的数j的因数,那么我们就将i加入到当前数的因数列表中。

当因数列表中的因数数量达到n时,我们就找到了具有n个不同因数的最小合数。

由于题目中给定的n的范围是3到100,所以我们可以采用试错法来求解。具体来说,我们可以从4开始,逐个检查每个数是否有n个不同的因数,直到找到第一个具有n个不同因数的数为止。

需要注意的是,由于题目中要求的是最小合数,所以我们需要保证在检查每个数之前,当前已经检查过的数中没有找到具有n个不同因数的数。如果找到了,那么我们就可以直接返回这个数,而不需要继续检查后面的数。

另外,由于题目中给定的n的范围较小,所以我们可以直接遍历所有可能的数,找到具有n个不同因数的最小合数。如果n的范围较大,那么我们可以采用一些优化算法来求解,例如通过分解质因数等方法来减少计算量。

喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:第12届蓝桥杯C++青少组中/高级组选拔赛2020年10月25日真题答案及解析

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share