2018年第九届蓝桥杯C/C++省赛A组题解

本文介绍了2018年第九届蓝桥杯C/C++省赛A组的五道题目及其解题思路。涉及等比数列求和、日期计算、末尾零个数、动态规划、区间修改等问题,通过实例解析展示了如何运用编程思维解决竞赛中的实际问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2018年第九届蓝桥杯C/C++省赛A组题解


第一题:

题意:就是求一个,首项为1,等比为1/2的等比数列的前二十项之和

答案:就是(2^20-1)/2^19

第二题:

题意:求整个二十世纪总共有多少个星期一

求解过程:当时灵机一动,打开电脑日历,查看了20世纪第一天是星期一(哈哈),然后算出整个二十世纪有25个闰年,所以总天数就是(365*100+25)/7 = 5217天。

第三题

题意:求解给定的数相乘得到的数末尾有多少个零

求解过程:算出这些数中一共包含多少个2,多少个5,然后取最小值就可以了,答案我记得是31。

第四题

题意:问某个数M是第多少个3,5,7构成的数

求解过程:这个题目跟杭电1058的丑数问题很像。

附上链接:http://acm.hdu.edu.cn/showproblem.php?pid=1058

如果直接采用暴力求解验证的话,是需要花费很长时间的,采用动态规划的思路去进行求解,转移方程为dp[i] = min(dp[p3]*3,dp[p5]*5,dp[p7]*7)。初始时,p3=p5=p7=0,dp[0]=1,

当时我写的代码是这样的:

for(int i=1;i<=2020;i++)
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值