第十四届蓝桥杯2022年3月stem真题C++
第一题
编程实现:字母转换
题目描述:
给定一个大写字母,输出其对应的小写字母。
输入描述:输入一个大写字母
输出描述:输出大写字母对应的小写字母
样例输入:A
样例输出:a
第二题
编程实现:数位求和
题目描述:
给定两个正整数 N和 M (N<M) ,统计 N到 M 之间(包含 N和 M)的正整数中,各个位上的数字之和为8 的有多少个。
如: N=100,M=150,100到150 之间有 5个数,各个位上的数字之和为 8。分别是 107、116、125、134、143。
输入描述:输入两个正整数 N和 M (100≤N<M≤801),且正整数之间以一个空格隔开
输出描述:输出一个整数,表示N 到 M之间 (包含N和 M)的正整数中有多少个各个位上的数字之和为 8
样例输入:100 150
样例输出:5
第三题
编程实现:分糖果
题目描述;
有 N 个小朋友从左到右排成一排,每个小朋友手中都有一定数量的糖果,且糖果总数量是 N 的倍数.计算出最少调整几次可以使每个小朋友的糖果数量相同
调整规则如下:
规则 1:每个小朋友的糖果只能调整到左右相邻的两个小朋友手中;
规则 2:第一个小朋友的糖果只能调整到第二个小朋友手中;
规则 3:最后一个小朋友的糖果,只能调整到倒数第二个小朋友手中。
例如:N等于3时,1~3 号小朋友原有糖果数量分别为 6,4,2
1)1 号小朋友拿出两块给2号小朋友;
2)2 号小朋友拿出两块给3号小朋友;
两次操作后三个小朋友手中糖果分别为 4,4,4
即按照调整规则最少操作3次可以使3个小朋友手中糖果数量都相同
现按照顺序给出 1~N 号小朋友手中原有糖果数量,按照调整规则计算出最少调整几次可以使小朋友手中的糖果数量都相同。
输入描述:
第一行输入一个正整数 N(N<5O),表示有 N 个小朋友
第二行输入 N 个正整数 (1<正整数<100),表示 1到 N 号小朋友手中原有糖果数量,正整数之间以一个空格隔开,且所有正整数之和是 N 的倍数
输出描述:
输出一个正整数,表示按照调整规则最少调整几次可以使小朋友手中的糖果数量都相同
样例输入:
3
6 4 2
样例输出:
2
第四题:猴子摘桃子
题目描述
果园有 M 行N 列桃树,每棵桃树上有一定数量的桃子。猴子从左上角的桃树开始进入果园摘桃子,每到达一棵桃树下都会将树上的桃子摘完,但猴子每次只能移动到当前所在桃树的下边或右边的桃树下摘桃子,按照这样的移动方案,猴子在果园中最多可以摘到多少桃子。现给出 M 和 N 的值,及每棵桃树上的桃子数量,按照移动方案,计算出猴子在果园最多可以摘到多少桃子例如:M=2,N=3
桃子数量为:
2 3 1
1 4 2
这种情况下,为了摘到最多数量的桃子,猴子摘桃子的顺序应为 2,3,4,2,总桃子数为 11.
输入描述:
第一行输入两个正整数 M,N (1≤M≤20,1≤N≤20),M 表示果园桃树的行数;N 表示果园桃树的列数:两个正整数之间一个空格隔开
第二行开始输入 M 行数据,每行 N 个正整数 (1≤正整数≤1000),正整数表示每棵桃树上的桃子数量,正整数之间一个空格隔开
输出描述:
输出一个整数,表示猴子在果园中最多可以摘到多少桃子
样例输入:
2 3
1 4 5
5 4 6
样例输出
16
第五题 最大值
给定一个正整数 M(1≤M≤5)和一个只包含数字的字符串(5<字符串长度≤20)。使用 M 个乘号插入到字符串中,且两个乘号不能相邻,插入后生成一个乘法算式。找出一种使乘法算式数值最大的插入方式,并将结果输出。(乘号不能放在字符串的首尾位置)
如 M=2,字符串为 123456,插入 2 个乘号。插入方式有:
1*2*3456=6912,1*23*456=10488,1*234*56=13104,1*2345*6=14070,
12*3*456=16416,12*34*56=22848,12*345*6=24840,123*4*56=27552,
123*45*6=33210,1234*5*6=37020.
其中乘法算式数值最大是第十种,为 37020
输入描述:
第一行输入一个正整数 M (1≤M≤5),表示乘号个数
第二行输入一个只包含数字的字符串 (5<字符串长度≤20),表示要插入 M 个乘号的字符串输出描述:
输出一个整数,表示最大乘积数值
样例输入:
2
123456
样例输出:37020