蓝桥杯刷题记录--charles

蓝桥杯刷题——C/C++

第十届蓝桥杯大赛软件类省赛C/C++ 大学C组

试题A:求和

题目:

小明对数位中含有 2、0、1、 9 的数字很感兴趣,在 1 到 40 中这样的数包 括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。

请问,在 1 到 2019 中,所有这样的数的和是多少?

示例:

在 1 到 40 中这样的数包 括 1、2、9、10 至 32、39 和 40,共 28 个

他们的和是 574。

代码:
#include
using namespace std;

int main()
{
	//定义一个sum整型变量存储满足条件的数字的和
	int sum = 0;
	//循环2019次  
	for (int i = 1; i <= 2019; i++)
	{
		//定义局部变量用于辅助判断 保证i不发生变化
		int j = i;
		//对每个数字进行判断
		while (j != 0)
		{
			//对j进行取余运算 
			int k= j % 10;
			if (k==2||k==0||k==1||k==9)
			{
				sum += i;
				//符合条件的数会跳出循环
				break;
			}
			//不符合的数会进行除法运算		例如567/10=56.7  此时j=56 !=0  继续while循环  
			//								56/10=5.6   此时j= 5 !=0  继续while循环  
			//								 5/10=0.5   此时j= 0		 继续for循环
			j /= 10;
		}
	}
	cout <<"满足条件的数之和为:"<< sum << endl;
	return 0;
}
结果:

试题B:矩形切割

题目:

小明有一块n*m的矩形白纸,每次他都会从中间切一刀切出一个最大的正方形,随后从剩余矩形再切出最大正方形,直到剩下的都是正方形为止。

示例:

一个5*3的矩形可以切出 3*3 2*2 1*1 1*1 四个正方形

那么2019*324 可以切出多少个正方形共能切出的正方形的个数?

代码:
#include 
using namespace std;
int main()
{
    cout << "在矩形中每次切出最大正方形,在指定了长度和宽度后,求出一共能切出多少个最大正方形" << endl;
    int a, b, sum = 0;
    cout << "请输入矩形的长度" << endl;
    cin >> a;
    cout << "请输入矩形的宽度" << endl;
    cin >> b;
    while (a > 0 || b > 0)
    {
        if (a > b)
        {
            a -= b;
            sum++;
        }
        else if (a < b)
        {
            b -= a;
            sum++;
        }
        else
        {
            sum++; 
            cout <<"你一共可以切出"<< sum <<"个正方形"<< endl;
            break;
        }
    }
    return 0;
}
结果:

蓝桥杯刷题记录--charles_第1张图片


试题C:年号字串

题目:

小明用字母 A 对应数字 1, B 对应 2,以此类推,用 Z 对应 26。对于 27 以上的数字,小明用两位或更长位的字符串来对应
请问 2019 对应的字符串是什么?

示例:

例如 AA 对应 27, AB 对 应 28, AZ 对应 52,LQ 对应 329。

代码:
#include
#include
using namespace std;
int main()
{
	string result = "";
	int a=2019;
	while (a)
	{
		//ASCII码转换      (a % 26 - 1)表示取余后第几位数 由于后面会加A,故第几位需要减去一   
		//A在ASCII表中的十进制为65
		//优化后
		char k = a % 26 + 64;
		//确认字符串后进行相加
		result = k + result;
		a = a / 26;
	}
	cout <<"2019对应的字符串为:"<< result<<endl;
	return 0;
}
结果:

试题D:质数

题目:

我们知道第一个质数是 2、第二个质数是 3、第三个质数是 5……
请你计算 第 2019 个质数是多少?

示例:

第1个质数是 2。

代码:

结果:

试题E:最大降雨量

题目:

由于沙之国长年干旱,法师小明准备施展自己的一个神秘法术来求雨。
这个法术需要用到他手中的 49 张法术符,上面分别写着 1 至 49 这 49 个 数字。
法术一共持续 7 周,每天小明都要使用一张法术符,法术符不能重复使 用。
每周,小明施展法术产生的能量为这周 7 张法术符上数字的中位数。法术 施展完 7 周后,求雨将获得成功,降雨量为 7 周能量的中位数。 由于干旱太久,小明希望这次求雨的降雨量尽可能大,请大最大值是多少?

示例:
代码:

结果:

试题F:旋转

题目:

图片旋转是对图片最简单的处理方式之一,在本题中,你需要对图片顺时 针旋转 90 度。 我们用一个 n ×m 的二维数组来表示一个图片,给定初始图片,请计算旋转后的图片。

示例:

给出一个 3 ×4 的 图片的例子:

1 3 5 7 
9 8 7 6 
3 5 9 7 

这个图片顺时针旋转 90 度后的图片如下:

3 9 1 
5 8 3 
9 7 5 
7 6 7 
代码:

结果:

试题G:外卖店优先级

题目:

“饱了么”外卖系统中维护着 N 家外卖店,编号 1 ~N。每家外卖店都有 一个优先级,初始时 (0 时刻 ) 优先级都为 0。
每经过 1 个时间单位,如果外卖店没有订单,则优先级会减少 1,最低减 到 0;而如果外卖店有订单,则优先级不减反加,
每有一单优先级加 2。 如果某家外卖店某时刻优先级大于 5,则会被系统加入优先缓存中;如果 优先级小于等于 3,
则会被清除出优先缓存。 给定 T 时刻以内的 M 条订单信息,请你计算 T 时刻时有多少外卖店在优 先缓存中。

示例:
代码:

结果:

试题H:人物相关性分析

题目:

小明正在分析一本小说中的人物相关性。他想知道在小说中 Alice 和 Bob 有多少次同时出现。
更准确的说,小明定义 Alice 和 Bob “同时出现”的意思是:在小说文本 中 Alice 和 Bob 之间不超过 K 个字符。

示例:

例如以下文本:

 This is a story about Alice and Bob. Alice wants to send a private messageto Bob.

假设 K = 20,则 Alice 和 Bob 同时出现了 2 次,分别是 ”Alice and Bob” 和”Bob. Alice ”。
前者 Alice 和 Bob 之间有 5 个字符,后者有 2 个字符。
注意 :
1. Alice 和 Bob 是大小写敏感的,alice 或 bob 等并不计算在内。
2. Alice 和 Bob 应为单独的单词,前后可以有标点符号和空格,但是不能 有字母。例如 Bobbi 並不算出现了 Bob。

代码:

结果:

试题I:等差数列

题目:

数学老师给小明出了一道等差数列求和的题目。但是粗心的小明忘记了一 部分的数列,只记得其中 N 个整数。
现在给出这 N 个整数,小明想知道包含这 N 个整数的最短的等差数列有几项?

示例:

N=5 时
包含 2、6、4、10、20 的最短的等差数列是 2、4、6、8、10、12、14、 16、 18、20。
结果为10项

代码:

结果:

试题J:扫地机器人

题目:

小明公司的办公区有一条长长的走廊,由 N 个方格区域组成,如下图所 示。
试题j走廊走廊内部署了 K 台扫地机器人,其中第 i 台在第 Ai 个方格区域中。
已知扫地机器人每分钟可以移动到左右相邻的方格中,并将该区域清扫干净。
请你编写一个程序,计算每台机器人的清扫路线,使得
1. 它们最终都返回出发方格,
2. 每个方格区域都至少被清扫一遍,
3. 从机器人开始行动到最后一台机器人归位花费的时间最少。
注意:
多台机器人可以同时清扫同一方块区域,它们不会互相影响。 输出最少花费的时间。

示例:

如本题图中N=10,K=3
第一台路线: 2-1-2-3-4-3-2 ,清 扫了 1、2、3、4 号区域。
第二台路线: 5-6-7-6-5,清扫了 5、6、7。
第三台路线: 10-9-8-9-10,清扫了 8、9 和 10。
结果为6。

代码:

结果:6

你可能感兴趣的:(C/C++,刷题,无监督学习)