在2016年的第七届蓝桥杯CC++竞赛的B组题解范本中,包含三道编程题目,主要考察参赛者的逻辑推理能力和基础编程技巧。
1. 煤球数目 题目要求计算一个三角形堆叠成的煤球总数。每层的煤球数量构成一个等差数列,且递增的规律是下一层比上一层多一个。例如,第四层有10个煤球,形成一个底为10的等差数列,即 An = An-1 + n。对于前100层,这是一个求和问题(Sn),利用公式 Sn = n * (a1 + an) / 2 来计算,其中n为层数,a1为第一层的煤球数。通过双重for循环遍历计算,最终的答案是171700个煤球。
2. 生日蜡烛 这是一道关于计算某人生日聚会吹灭的蜡烛总数的问题。由于题目中指出某君每年吹熄的蜡烛数等于他的年龄,出题者忽略了年龄可能超过236岁的可能性。解决方案是暴力枚举,从1开始到236,用两个变量start和end表示开始过生日的年龄和当前年龄,当两者的差乘以end等于236时,找到了答案,即26岁。
3. 算式求解 第三个题目涉及到一个含有除法和加法的算式,其中A-I代表1到9的不同数字,每个字母代表一个不同的数字。任务是找出所有可能的数字组合,使得算式成立。解决方法是生成9个数字的所有排列,然后逐一检查每个排列是否满足算式条件。在验证过程中,需要确保表达式的计算结果正确。虽然没有提供完整的代码实现,但关键在于设计一个算法来检查每个排列是否满足算式,最后的答案是29。
这些题目体现了蓝桥杯竞赛中对基础数学知识、算法理解和编程能力的考察,同时也提醒参赛者在面对类似题目时要注意细节和边界条件的处理。