蓝桥杯2019c语言a组,2019蓝桥杯c语言A组题目以及解析(纯C)

本文章将持续更新一些简单的赛事题目,解题使用纯C语言,不涉及C++,因为我也是刚学习C语言,来练练提升自己水平。本文章的解题思路不会考虑算法的简洁性,以算法的简单优先,可能代码量大而简单,但是更易学习。

我会给每一行代码加上注释,适合像我一样的初学者学习。

A. 平方和

【问题描述】

小明对数位中含有 2、0、1、9 的数字很感兴趣,在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574,平方和是 14362。注意,平方和是指将每个数分别平方后求和。

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

答案:2658417853

看到很多大佬的解题思路真的简洁清晰,我来个更笨的枚举解题

思路:先用for循环1-2019的所有数字,把每一个数字转换成字符数组比如1转换成’1’ 100转化成’1’ ‘0’ ‘0’,再根据位数逐个判断是否包含‘2’ ‘0’ ‘1’ ‘9’

上代码:

#include

int main()

{

long long sum = 0; //创建一个长整数变量,用来存放平方和

for (long long a = 1; a<=2019; a=a++)//循环1-2019的每一个数字

{

char s[8];//创建字符数组,用于整数转换字符串的储存

sprintf(s, "%lld", a);//整数转换字符串

if (a<10)//下面的if都是循环判断每一个字符数组成员是否含有2,0,1,9

{

if (s[0]=='2' || s[0] == '0' || s[0] == '1' || s[0] == '9')

{

sum = a * a+sum;

}

}

if (a<100 && a>=10)

{

if (s[0] == '2' || s[0] == '0' || s[0] == '1' || s[0] == '9')

{

sum = a * a + sum;

}

else

{

if (s[1] == '2' || s[1] == '0' || s[1] == '1' || s[1] == '9')

{

sum = a * a + sum;

}

}

}

if ( a < 1000 && a >= 100)

{

if (s[0] == '2' || s[0] == '0' || s[0] == '1' || s[0] == '9')

{

sum = sum + a * a;

}

else

{

if (s[1] == '2' || s[1] == '0' || s[1] == '1' || s[1] == '9')

{

sum = sum + a * a;

}

else

{

if (s[2] == '2' || s[2] == '0' || s[2] == '1' || s[2] == '9')

{

sum = sum + a * a;

}

}

}

}

if (a < 10000 && a >= 1000)

{

if (s[0] == '2' || s[0] == '0' || s[0] == '1' || s[0] == '9')

{

sum = sum + a * a;

}

else

{

if (s[1] == '2' || s[1] == '0' || s[1] == '1' || s[1] == '9')

{

sum = sum + a * a;

}

else

{

if (s[2] == '2' || s[2] == '0' || s[2] == '1' || s[2] == '9')

{

sum = sum + a * a;

}

else

{

if (s[3] == '2' || s[3] == '0' || s[3] == '1' || s[3] == '9')

{

sum = sum + a * a;

}

}

}

}

}

}

printf("%lld", sum);

B. 数列求值

【问题描述】

给定数列 1, 1, 1, 3, 5, 9, 17, …,从第 4 项开始,每项都是前 3 项的和。求

第 20190324 项的最后 4 位数字。

答案:4659

思路:递推,每次都%10000 经过python尝试第一千项目已经达到下面的结果

10565699428369704222792849547500

98236519342255152919675406067018

21396074739381766709558872599594

89737224174222274775896140703938

20954716814070302286673551230293

56094067484636736752022453834248

26302070809058467686757909035536

45664897731604869996342518016379

904334431

所以只能%10000,不要计算全部位数!!!

上代码:

#include

int main()

{

long long a, b,c,d;//创建整数变量a,b,c分别表示后三项,d表示最后一项

a = 1; b = 1; c = 1; //初始赋值

for (int e=4; e <= 20190324; e++)//斐波那契数列

{

d = (a + b + c)%10000;//取余数计算即可,题目要求是后四位所以我们只需要计算后取后四位这样循环计算即可

a = b; b = c; c = d;

}

printf("%lld\n", d);

}

C. 最大降雨量

【问题描述】

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

答案:34

思路:emm,这是道数学题,刚开始我想把所有可能的排列都算出来,结果49的阶乘实在数据量太多计算机根本算不出。于是只能智取了,如图所示:

caaa2c51f1c099ee2a1ea71906508eca.png

假设我们按照每一周的中位数的大小将每一周进行排列到1-7周

那么第四周的中位数就是降雨的能量,为了保证能量最大也就是我在图中画斜线的括号数字最大

而画圆圈的括号的数字一定要比画斜线的括号数字大,所以至少得有15个数比降雨的能量大

那就49-15=34,这就是降雨的最大能量了。但是代码怎么写,我也不知道,看来数学很重要呀

原文链接:https://blog.csdn.net/qq_33681342/article/details/109050250

站长简介:前每日优鲜python全栈开发工程师,自媒体达人,逗比程序猿,钱少话少特宅,关注我,做朋友, 我们一起谈人生和理想吧!我的公众号:想吃麻辣香锅

关注公众号回复充值+你的账号,免费为您充值1000积分

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在现有省、市港口信息化系统进行有效整合基础上,借鉴新 一代的感知-传输-应用技术体系,实现对码头、船舶、货物、重 大危险源、危险货物装卸过程、航管航运等管理要素的全面感知、 有效传输和按需定制服务,为行政管理人员和相关单位及人员提 供高效的管理辅助,并为公众提供便捷、实时的水运信息服务。 建立信息整合、交换和共享机制,建立健全信息化管理支撑 体系,以及相关标准规范和安全保障体系;按照“绿色循环低碳” 交通的要求,搭建高效、弹性、高可扩展性的基于虚拟技术的信 息基础设施,支撑信息平台低成本运行,实现电子政务建设和服务模式的转变。 实现以感知港口、感知船舶、感知货物为手段,以港航智能 分析、科学决策、高效服务为目的和核心理念,构建“智慧港口”的发展体系。 结合“智慧港口”相关业务工作特点及信息化现状的实际情况,本项目具体建设目标为: 一张图(即GIS 地理信息服务平台) 在建设岸线、港口、港区、码头、泊位等港口主要基础资源图层上,建设GIS 地理信息服务平台,在此基础上依次接入和叠加规划建设、经营、安全、航管等相关业务应用专题数据,并叠 加动态数据,如 AIS/GPS/移动平台数据,逐步建成航运管理处 "一张图"。系统支持扩展框架,方便未来更多应用资源的逐步整合。 现场执法监管系统 基于港口(航管)执法基地建设规划,依托统一的执法区域 管理和数字化监控平台,通过加强对辖区内的监控,结合移动平 台,形成完整的多维路径和信息追踪,真正做到问题能发现、事态能控制、突发问题能解决。 运行监测和辅助决策系统 对区域港口与航运业务日常所需填报及监测的数据经过科 学归纳及分析,采用统一平台,消除重复的填报数据,进行企业 输入和自动录入,并进行系统智能判断,避免填入错误的数据, 输入的数据经过智能合,自动生成各业务部门所需的数据报 表,包括字段、格式,都可以根据需要进行定制,同时满足扩展 性需要,当有新的业务监测数据表需要产生时,系统将分析新的 需求,将所需字段融合进入日常监测和决策辅助平台的统一平台中,并生成新的所需业务数据监测及决策表。 综合指挥调度系统 建设以港航应急指挥中心为枢纽,以各级管理部门和经营港 口企业为节点,快速调度、信息共享的通信网络,满足应急处置中所需要的信息采集、指挥调度和过程监控等通信保障任务。 设计思路 根据项目的建设目标和“智慧港口”信息化平台的总体框架、 设计思路、建设内容及保障措施,围绕业务协同、信息共享,充 分考虑各航运(港政)管理处内部管理的需求,平台采用“全面 整合、重点补充、突出共享、逐步完善”策略,加强重点区域或 运输通道交通基础设施、运载装备、运行环境的监测监控,完善 运行协调、应急处置通信手段,促进跨区域、跨部门信息共享和业务协同。 以“统筹协调、综合监管”为目标,以提供综合、动态、实 时、准确、实用的安全畅通和应急数据共享为核心,围绕“保畅通、抓安全、促应急"等实际需求来建设智慧港口信息化平台。 系统充分整合和利用航运管理处现有相关信息资源,以地理 信息技术、网络视频技术、互联网技术、移动通信技术、云计算 技术为支撑,结合航运管理处专网与行业数据交换平台,构建航 运管理处与各部门之间智慧、畅通、安全、高效、绿色低碳的智 慧港口信息化平台。 系统充分考虑航运管理处安全法规及安全职责今后的变化 与发展趋势,应用目前主流的、成熟的应用技术,内联外引,优势互补,使系统建设具备良好的开放性、扩展性、可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值