【蓝桥杯冲刺】蓝桥杯13届省赛C++b组真题-A~E题

这篇具有很好参考价值的文章主要介绍了【蓝桥杯冲刺】蓝桥杯13届省赛C++b组真题-A~E题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

试题A:九进制转十进制

解题思路

答案

试题B:顺子日期

解题思路

答案

试题C:刷题统计

题解思路

代码

试题D:修建灌木

解题思路

代码

试题E:X进制减法

解题思路

代码

写在最后:


试题A:九进制转十进制

九进制正整数 (2022)  转换成十进制等于多少?

解题思路

直接转就完了。

#include <iostream>
#include <algorithm>
using namespace std;

int main() {
	cout << 2 * pow(9, 0) + 2 * pow(9, 1) + 0 * pow(9, 2) + 2 * pow(9, 3) << endl;
	return 0;
}

答案

1478

试题B:顺子日期

小明特别喜欢顺子。

顺子指的就是连续的三个数:123 、456 等。

顺子日期指的就是在日期的 yyyymmdd 表示法中,存在任意连续的三位数是一个顺子的日期。

例如 20220123 就是一个顺子日期,因为它出现了一个顺子:123 ;

而 20221023 则不是一个顺子日期,它一个顺子也没有。

小明想知道在整个 2022 年份中,一共有多少个顺子日期。

解题思路

这道题有一定争议,

如果你认为 012 算顺子,那么:

#include <iostream>
#include <string>
using namespace std;

int month[] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

int res = 0;

void check(int x) {
	string s = to_string(x);
	for (int i = 0; i + 2 < s.size(); i++) {
		if (s[i] + 1 == s[i + 1] && s[i] + 2 == s[i + 2]) {
			res++;
			return;
		}
	}
}

int main() {
	int year = 2022;
	for (int i = 0; i <= 365; i++) {
		int day = i, mon = 1;
		//算出月份和日期
		while (day > month[mon]) {
			mon++;
			day -= month[mon];
		}
		int y = year * 10000 + mon * 100 + day;
		check(y);//查看是不是顺子
	}
	cout << res << endl;
	return 0;
}

如果你认为 012 不算顺子:

#include <iostream>
#include <string>
using namespace std;

int month[] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

int res = 0;

void check(int x) {
	string s = to_string(x);
	for (int i = 0; i + 2 < s.size(); i++) {
		//加一个判断即可
		if (s[i] != '0' && s[i] + 1 == s[i + 1] && s[i] + 2 == s[i + 2]) {
			res++;
			return;
		}
	}
}

int main() {
	int year = 2022;
	for (int i = 0; i <= 365; i++) {
		int day = i, mon = 1;
		//算出月份和日期
		while (day > month[mon]) {
			mon++;
			day -= month[mon];
		}
		int y = year * 10000 + mon * 100 + day;
		check(y);//查看是不是顺子
	}
	cout << res << endl;
	return 0;
}

答案

如果你认为 012 算顺子:

14

如果你认为 012 不算顺子:

4

两个答案都是对的。

试题C:刷题统计

【问题描述】

小明决定从下周一开始努力刷题准备蓝桥杯竞赛。

他计划周一至周五每天做 a 道题目,周六和周日每天做 b 道题目。

请你帮小明计算,按照计划他将在 第几天实现做题数大于等于 n 题?

【输入格式】

输入一行包含三个整数 a , b 和 n 。

【输出格式】

输出一个整数代表天数。

【样例输入】

10 20 99

【样例输出】

8

【评测用例规模与约定】

对于 50 % 的评测用例, 1 ≤ a , b , ≤  .

对于 100 % 的评测用例, 1 ≤ a , b , ≤  .

题解思路

简单模拟即可。

代码

#include <iostream>
using namespace std;

int day[] = { 0, 1, 2, 3, 4, 5, 6 };

int main() {
	int a, b, n;
    scanf("%d %d %d", &a, &b, &n);	
	int i = 0, cnt = 0;
	while (n > 0) {
		i %= 7;
		if (day[i] >= 0 && day[i] <= 4) {
			n -= a;
		}
		else {
			n -= b;
		}
		i++;
		cnt++;
	}
	printf("%d", cnt);
	return 0;
}

试题D:修建灌木

【问题描述】

爱丽丝要完成一项修剪灌木的工作。

有 N 棵灌木整齐的从左到右排成一排。

爱丽丝在每天傍晚会修剪一棵灌木,让灌木的高度变为 0 厘米。

爱丽丝修剪灌木的顺序是从最左侧的灌木开始, 每天向右修剪一棵灌木。

当修剪了最右侧的灌木后,她会调转方向,下一天开始向左修剪灌木。

直到修剪了最左的灌木后再次调转方向。然后如此循环往复。

灌木每天从早上到傍晚会长高 1 厘米,而其余时间不会长高。

在第一天的早晨,所有灌木的高度都是 0 厘米。

爱丽丝想知道每棵灌木最高长到多高。

【输入格式】

一个正整数 N ,含义如题面所述。

【输出格式】

输出 N 行,每行一个整数,第行表示从左到右第 i 棵树最高能长到多高。

【样例输入】

3

【样例输出】

4
2
4

【评测用例规模与约定】

对于 30 % 的数据, ≤ 10 .

对于 100 % 的数据, 1 < ≤ 10000.

解题思路

找规律:

【蓝桥杯冲刺】蓝桥杯13届省赛C++b组真题-A~E题

代码

#include <iostream>
#include <algorithm>
using namespace std;

int main() {
	int n = 0;
	scanf("%d", &n);
	for (int i = 1; i <= n; i++) {
		printf("%d\n", max(i - 1, n - i) * 2);
	}
	return 0;
}

试题E:X进制减法

【问题描述】

进制规定了数字在数位上逢几进一。

X 进制是一种很神奇的进制,因为其每一数位的进制并不固定!

例如说某种 X 进制数,最低数位为二进制,第二数位为十进制,第三数位为八进制,

则 X 进制数 321 转换为十进制数为 65 。

现在有两个 X 进制表示的整数 A 和 B ,但是其具体每一数位的进制还不确定,

只知道 A 和 B 是同一进制规则,且每一数位最高为 N 进制,最低为二进制。

请你算出 A − B 的结果最小可能是多少。

请注意,你需要保证 A 和 B 在 X 进制下都是合法的,

即每一数位上的数字要小于其进制。

【输入格式】

第一行一个正整数 N ,含义如题面所述。

第二行一个正整数 Ma ,表示 X 进制数 A 的位数。

第三行 Ma 个用空格分开的整数,

表示 X 进制数 A 按从高位到低位顺序各个数位上的数字在十进制下的表示。

第四行一个正整数 Mb ,表示 X 进制数 B 的位数。

第五行 Mb 个用空格分开的整数,

表示 X 进制数 B 按从高位到低位顺序各个数位上的数字在十进制下的表示。

请注意,输入中的所有数字都是十进制的。

【输出格式】

输出一行一个整数,

表示 X 进制数 A − B 的结果的最小可能值转换为十进制后再模 1000000007 的结果。

【样例输入】

11
3
10 4 0
3
1 2 0

【样例输出】

94

【样例说明】

当进制为:最低位 2 进制,第二数位 5 进制,第三数位 11 进制时,减法得到的差最小。

此时 在十进制下是 108 , 在十进制下是 14 ,差值是 94 。

【评测用例规模与约定】

对于 30 % 的数据, N ≤ 10;  Ma , Mb ≤ 8 .

对于 100 % 的数据, 2 ≤ N ≤ 1000;  1 ≤ Ma , Mb ≤ 100000;  A ≥ B .

解题思路

这道题第一件事,是要知道题目中X进制数该怎么转化成10进制,

以题目中给的 321 转化成 65 为例:

最低数位为二进制,第二数位为十进制,第三数位为八进制,

而这里的进制是用来表示:(进制规定了数字在数位上逢几进一

所以,我们是以最低位的进制为基准的,核心思路如下:

八进制位是3,证明十进制的那个位进位了 3 次,才进位完,而十进制那里还剩2:

让 3 * 10 + 2,那么十进制位那里就是32了,

十进制位是 32 个,证明二进制的那个位进位了 32 次,才进位完,而二进制那里还剩1:

让 32 * 2 + 1,最后算出来的就是 65 了。

代码

#include <iostream>
#include <algorithm>
using namespace std;

#define LL long long

const int N = 100010;
LL a[N], b[N], c[N];
LL mod = 1000000007;

int main()
{
	//输入
	LL n = 0;
	scanf("%lld", &n);
	LL ma = 0;
	scanf("%lld", &ma);
	for (LL i = 0; i < ma; i++) {
		scanf("%lld", &a[i]);
	}
	LL mb = 0;
	scanf("%lld", &mb);
	for (LL i = 0; i < mb; i++) {
		scanf("%lld", &b[i]);
	}

	reverse(a, a + ma);
	reverse(b, b + mb);

	//求出每一个位置的进制
	for (int i = 0; i < max(ma, mb); i++) {
		c[i] = max(max(a[i], b[i]) + 1, 2ll);
	}

	//运用刚刚分析的思路,将 A 和 B 的十进制求出 
	LL A = 0, B = 0;
	for (int i = ma - 1; i >= 0; i--) {
		A = ((A * c[i]) + a[i]) % mod;
	}

	for (int i = mb - 1; i >= 0; i--) {
		B = ((B * c[i]) + b[i]) % mod;
	}

	printf("%lld\n", (A - B + mod) % mod);

	return 0;
}

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果喜欢本文的话,欢迎点赞和评论,写下你的见解。

如果想和我一起学习编程,不妨点个关注,我们一起学习,一同成长。

之后我还会输出更多高质量内容,欢迎收看。 文章来源地址https://www.toymoban.com/news/detail-424077.html

到了这里,关于【蓝桥杯冲刺】蓝桥杯13届省赛C++b组真题-A~E题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 蓝桥杯单片机14届记录 + 6-13届省赛代码+试题

    客观题 01. 一个 8 位的 DAC 转换器,供电电压为 3.3V,参考电压 2.4V,其 1LSB 产生的输出电 压增量是( )V。 A. 0.0129 B. 0.0047 C. 0.0064 D. 0.0094  02. IAP15F2K61S2 单片机支持通过哪些接口进行在线调试( )。 A. SPI B. UART C. I2C D. JTAG  03. 下列电路中属于时序逻辑电路的是( )。 A. 计数

    2024年02月06日
    浏览(53)
  • 第十三届省赛蓝桥杯物联网程序设计试题

    1、配置根据试题的要求配置STM32CubeMX (1)引脚配置 将PC14引脚配置为输入模式 PC14 用户按键引脚 将PA10引脚配置为中断模式 PA10 LoRa模块DIO0引脚 将以下引脚配置为输出模式 PC15 用户LED引脚 PB5 OLED 电源控制引脚 PA11和PA12 继电器控制引脚 PA4和PA9 LoRa模块片选和复位引脚,初始为高电

    2023年04月10日
    浏览(53)
  • 【蓝桥杯嵌入式】蓝桥杯第十二届省赛程序真题,真题分析与代码讲解

    🎊【蓝桥杯嵌入式】专题正在持续更新中,原理图解析✨,各模块分析✨以及历年真题讲解✨都在这儿哦,欢迎大家前往订阅本专题,获取更多详细信息哦🎏 🎏【蓝桥杯嵌入式】蓝桥杯第十届省赛真题 🎏【蓝桥杯嵌入式】蓝桥杯第十三届省赛程序真题 🪔本系列专栏 -  

    2023年04月15日
    浏览(92)
  • 2022蓝桥杯冲刺(历年真题剖析,含省赛、国赛)

    大家好,我是莫若心,为了帮助兄弟们更好准备蓝桥杯比赛,我特意选取了蓝桥往年真题中许多能体现出蓝桥经典题型的题目,有需要的兄弟们可以收藏一下,后续我会继续更新蓝桥真题题型专栏,和大家一起冲击蓝桥杯 附上蓝桥杯官网地址:蓝桥杯官网 🚩🚩 题目如下 观

    2023年04月08日
    浏览(50)
  • 蓝桥杯2023年第十四届省赛真题-平方差--题解

    时间限制: 3s 内存限制: 320MB 提交: 2379 解决: 469 给定 L, R,问 L ≤ x ≤ R 中有多少个数 x 满足存在整数 y,z 使得 x = y2 − z2。 输入一行包含两个整数 L, R,用一个空格分隔。 输出一行包含一个整数满足题目给定条件的 x 的数量。 复制 复制 1 = 1^2 − 0^2 ; 3 = 2^2 − 1^2 ; 4 =

    2024年02月07日
    浏览(52)
  • 【蓝桥杯嵌入式】蓝桥杯嵌入式第十四届省赛程序真题,真题分析与代码讲解

     🎊【蓝桥杯嵌入式】专题正在持续更新中,原理图解析✨,各模块分析✨以及历年真题讲解✨都已更新完毕,欢迎大家前往订阅本专题🎏 🎏【蓝桥杯嵌入式】蓝桥杯第十届省赛真题 🎏【蓝桥杯嵌入式】蓝桥杯第十二届省赛程序真题 🎏【蓝桥杯嵌入式】蓝桥杯第十三届省

    2023年04月15日
    浏览(104)
  • 蓝桥杯2023年第十四届省赛真题-买瓜--C语言题解

    目录 蓝桥杯2023年第十四届省赛真题-买瓜 题目描述 输入格式 输出格式 样例输入 样例输出 提示 【思路解析】 【代码实现】 时间限制: 3s 内存限制: 320MB 提交: 796 解决: 69 小蓝正在一个瓜摊上买瓜。瓜摊上共有 n 个瓜,每个瓜的重量为 Ai 。 小蓝刀功了得,他可以把任何瓜

    2024年02月07日
    浏览(54)
  • 题目 3158: 蓝桥杯2023年第十四届省赛真题-三国游戏(贪心)

    小蓝正在玩一款游戏。游戏中魏蜀吴三个国家各自拥有一定数量的士兵X, Y, Z (一开始可以认为都为 0 )。游戏有 n 个可能会发生的事件,每个事件之间相互独立且最多只会发生一次,当第 i 个事件发生时会分别让 X, Y, Z 增加Ai , Bi ,Ci 。 当游戏结束时 (所有事件的发生与否已经确

    2024年02月01日
    浏览(59)
  • 蓝桥杯【第13届省赛】Python B组 98.95分

    只能说这波有点混,我估计 48.5 分左右 (满分 150)。广东总共 78 个省一,我只排到了第 33 (42.3%) 考前主要在力扣上面练,考试时发现并无卵用,打蓝桥杯还是要以真题为主 考完没有第一时间写题解也是因为考试时有很多不懂的,现在已经是个要打国赛的人了,重新做一下 填空

    2023年04月09日
    浏览(38)
  • 题目3180:蓝桥杯2023年第十四届省赛真题-互质数的个数======及探讨互质专题

    https://www.dotcpp.com/oj/problem3162.html 已AC。 (1)首先大家要知道什么叫互质: 以及它们的性质: 在数论中,对正整数n,欧拉函数φ(n)是小于或等于n的正整数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为φ函数(由高斯所命名)或是欧拉总计函数(totient fu

    2023年04月24日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包