第十一届蓝桥杯大赛第一次模拟(软件类)真题 (2020年3月,C++描述)

第一次模拟

  • T1:15.125GB
  • T2:约数个数
  • T3:叶节点数
  • T4:数字9
  • T5:数位递增的数
  • T6:递增三元组
  • T7:音节判断
  • T8:长草
  • T9:序列计数
  • T10:晚会节目单

T1:15.125GB

【问题描述】
在计算机存储中,15.125GB是多少MB/p>

思路分析:1GB为1024MB,15.125*1024=15488。
答案:15488

T2:约数个数

【问题描述】
1200000有多少个约数(只计算正约数)/p>

思路分析:1200000不是很大,直接从1开始遍历并判断是否是约数即可。

代码:

答案:96

T3:叶节点数

【问题描述】
一棵包含有2019个结点的二叉树,最多包含多少个叶结点br>

思路分析:我们知道二叉树的结点数满足:

其中n0表示叶子结点个数,n2表示度为2结点的个数。要想n0最大,那么显然n2需要最大。那显然当二叉树中没有度为1的结点的时候n2最大。即:

联立解得:

答案:1010

T4:数字9

【问题描述】
在1至2019中,有多少个数的数位中包含数字9br>注意,有的数中的数位中包含多个9,这个数只算一次。例如,1999这个数包含数字9,在计算只是算一个数。

思路分析:循环判断每个数是否含有9即可。

代码:

答案:544

T5:数位递增的数

【问题描述】
一个正整数如果任何一个数位不大于右边相邻的数位,则称为一个数位递增的数,例如1135是一个数位递增的数,而1024不是一个数位递增的数。
给定正整数 n,请问在整数 1 至 n 中有多少个数位递增的数br>【输入格式】
输入的第一行包含一个整数 n。
【输出格式】
输出一行包含一个整数,表示答案。
【样例输入】
30
【样例输出】
26
【评测用例规模与约定】
对于 40% 的评测用例,1 对于 80% 的评测用例,1 对于所有评测用例,1

代码:

T6:递增三元组

【问题描述】
在数列 a[1], a[2], …, a[n] 中,如果对于下标 i, j, k 满足 0给定一个数列,请问数列中有多少个元素可能是递增三元组的中心。
【输入格式】
输入的第一行包含一个整数 n。
第二行包含 n 个整数 a[1], a[2], …, a[n],相邻的整数间用空格分隔,表示给定的数列。
【输出格式】
输出一行包含一个整数,表示答案。
【样例输入】
5
1 2 5 3 5
【样例输出】
2
【样例说明】
a[2] 和 a[4] 可能是三元组的中心。
【评测用例规模与约定】
对于 50% 的评测用例,2 对于所有评测用例,2

思路分析:遍历数组,一个数要想成为递增三元组的中心,那么在它左边至少要有一个比它小的数,右边要有一个比它大的数。

代码:

T7:音节判断

【问题描述】
??小明对类似于 hello 这种单词非常感兴趣,这种单词可以正好分为四段,第一段由一个或多个辅音字母组成,第二段由一个或多个元音字母组成,第三段由一个或多个辅音字母组成,第四段由一个或多个元音字母组成。
??给定一个单词,请判断这个单词是否也是这种单词,如果是请输出yes,否则请输出no。
??元音字母包括 a, e, i, o, u,共五个,其他均为辅音字母。
【输入格式】
输入一行,包含一个单词,单词中只包含小写英文字母。
【输出格式】
输出答案,或者为yes,或者为no。
【样例输入】
lanqiao
【样例输出】
yes
【样例输入】
world
【样例输出】
no
【评测用例规模与约定】
对于所有评测用例,单词中的字母个数不超过100。

思路分析:初始化一个字符串长度的整形数组,如果字符串某个位置为元音字母,则整型数组该位置为1,否则为0。然后遍历整形数组:首先遍历直到不为0时停下,接着遍历直到不为1时停下,然后重复上述两个操作。如果最后位置指针落在最后一位,说明满足条件,否则不满足条件。

代码:

#includeusing namespace std;string seq = "aeiou";int a[100] = {0}; int main() {	string str;	cin >> str;	for(int i = 0; i str.length(); i++) {		if(seq.find(str[i]) != -1) {			a[i] = 1;		}	}	if(a[0] == 1) {		cout  "no";		return 0;	}	int i = 1;	while(a[i] == 0) {		i++;	}	while(a[i] == 1) {		i++;	}	while(a[i] == 0) {		i++;	}	while(a[i] == 1 && i  str.length()) {		i++;	}	if(i == str.length()) {		cout  "yes";	}else {		cout 来源:Cyril_KI
                                                        

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年3月9日
下一篇 2022年3月9日

相关推荐