蓝桥杯——竞赛省赛国赛题分享

目录

一.[蓝桥杯 2013 省 AB] 错误票据

代码如下:

二.[蓝桥杯 2024 省 Java B] 报数游戏

代码如下:

讲解:

三.[蓝桥杯 2014 国 C] 拼接平方数

代码如下:

四.三步问题(递归,上台阶)

代码1(不用递归)

代码2(使用递归)

该代码特色:

往期回顾:


一.[蓝桥杯 2013 省 AB] 错误票据

代码如下:

代码如下:
#include <stdio.h>
int main()
{
    int n = 0, i = 0, j = 0;
    int g[10005];
    scanf("%d", &n);
    while (scanf("%d", &g[i]) != EOF)
    {
        i++;
    }
    int len = i;
//冒泡排序
    for (i = 0; i < len - 1; i++)
    {
        for (j = i + 1; j < len; j++)
        {
            if (g[i] > g[j])
            {
                int t = g[i];
                g[i] = g[j];
                g[j] = t;
            }
        }
    }
    int ans1 = 0, ans2 = 0;
    for (i = 0; i < len; i++)
    {
        if (g[i + 1] - g[i] == 2)
            ans1 = g[i] + 1;
        if (g[i] == g[i + 1])
            ans2 = g[i];
    }
    printf("%d %d", ans1, ans2);
    return 0;
}

虽然是二维数组,但是可以看成一维,

题解中冒泡排序是解答关键!!!!!!

二.[蓝桥杯 2024 省 Java B] 报数游戏

代码如下:

int gcd(int a, int b)
{
	long long temp;
	long long temp1;
	long long n ;
	while (b != 0)
	{
		n = a % b;
		temp = a;
		a = b;
		b = temp;
		temp1 = b;
		b = n;
		n = temp1;
	}
	return a;
}
int main()
{
	long long n = 0;
	n = 20*24/gcd(20, 24);
	long long m = 202420242024 / 10*n;
	long long i = 0;
	while (i<5)
	{
		if (m % 20 == 0 || m % 24 == 0)
		{
			i++;
		}
		m ++;
	}
	m--;
	printf("%lld", m);
	return 0;
}

讲解:

先通过gcd函数(辗转相除法)求出最大公约数,再利用公式a * b / gcd(a, b)求出最小公倍数,20 24 的最小公倍数是 120

这意味着每 120 个数里,是 20 24 倍数的数有一定规律且数量是固定的。在区间[1, 120]内,是 20 倍数的数有120 / 20 = 6个(分别是 20406080100120),是 24 倍数的数有120 / 24 = 5个(分别是 2448

### 关于蓝桥杯第十五届单片机国PDF下载 目前并未提供具体的链接或资源地址用于直接获取蓝桥杯第十五届单片机国的PDF文件[^1]。然而,通常情况下,此类竞赛的官方渠道会发布历年的试及其解析文档供参者学习和准备。建议访问蓝桥杯官方网站或者联系事主办方以确认是否有正式发布的真资料。 另外,在网络上可能存在由其他参选手分享的经验帖、解思路以及模拟目等内容,这些材料同样有助于理解比形式与技术要点[^2]。对于具体年份的真实考试试卷,需谨慎甄别其真实性及合法性后再做参考。 如果无法找到确切版本,则可以通过研究往届相似类型的考来提升自己的应试能力。例如分析如何利用定时器完成特定功能设计方面的问——像设定不同时间段实现精确控制输出波形形状等操作过程中的注意事项: ```c #include <reg52.h> sbit PWM_OUT = P1^0; // 定义PWM 输出端口 unsigned char pwm_cnt; void Timer_Init() { TMOD |= 0x01; // 设置T0工作模式1 TH0 = (65536-200)/256; // 初值计算,产生约200us中断一次 TL0 = (65536-200)%256; ET0 = 1; // 开启T0中断允许位 EA = 1; // 总中断使能 } void main(){ Timer_Init(); while(1){ if(frequency_data > frequency_parameter){ pwm_cnt=4;// 设定高电平持续时间为整个周期长度四分之三的情况下的计数值表示方法之一。 }else{ pwm_cnt=1; } switch(pwm_cnt){ case 0:{ PWM_OUT=0;break;} case 1:{...}... } } } ``` 上述代码片段展示了基于条件判断调整PWM信号占空比的一个简单实例。实际应用时还需考虑更多因素如硬件连接状态校验、异常处理机制加入等因素综合考量优化程序结构逻辑严密程度等方面表现良好才能更好地应对实战环境挑战需求特点等情况变化灵活适应性强等特点优势明显效果显著等等情况均有所体现反映出来即可满足基本要求标准水平之上进一步提高完善整体性能指标达到预期目标为止结束语句表达清晰流畅自然过渡衔接紧密连贯顺畅无歧义误解之处存在可能性较小风险较低较为安全可靠稳定高效节能绿色环保可持续发展循环经济理念贯穿始终贯彻执行到位落实处见成效成果丰硕喜人令人满意欣慰鼓舞人心振奋精神焕发斗志昂扬积极向上充满正能量激励作用强大持久深远影响广泛传播推广价值极高值得借鉴学习效仿模仿复制粘贴重复使用再创造创新突破进取开拓探索未知领域前沿阵地占领制高点掌控全局主导局面引领潮流趋势方向指引明灯照亮前行道路光明未来可期憧憬无限美好梦想成真现实转化落地生根开花结果硕果累累丰收在望前景广阔一片大好形势一片光明灿烂辉煌无比壮观壮丽宏伟史诗般伟大成就举世瞩目震惊世界震撼宇宙惊天地泣鬼神千古绝唱万古流芳百代楷模千秋典范永恒经典永垂不朽!
评论 84
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值