【每日例题】蓝桥杯 c++ 报纸页数

发布时间 2023-11-09 20:09:37作者: 山远尽成云

报纸页数

题目

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
×星球日报和我们地球的城市早报是一样的,都是一些单独的纸张叠在一起而已。每张纸印有4版。
比如,某张报纸包含的4页是:5,6,11,12,可以确定它应该是最上边的第2张报纸。
我们在太空中捡到了一张×星球的报纸,4个页码分别是:1125,1126,1727,1728
请你计算这份报纸一共多少页(也就是最大页码,并不是用了几张纸哦)?

蓝桥杯 报纸页数

题目分析

这道题首先需要了解报纸的页码分布

我们把报纸分为第一面与第二面,其中第一面是外面(靠近封面的一面),第二面为里面。每张报纸左右两边都分别拥有一个奇数页与一个偶数页。以题目例子为例,第一面的页码为:5、12,第二面的页码为:6、11;左边页码为:5、6,右边页码为:11、12

第一面的左边为该张报纸的最小页码,右边为该张报纸的最大页码,以题目例子为例,第一面左边页码为:5,右边页码为:12

第二面的左边页码与第一面左边页码连续,同理,第二面的右边页码与第一面右边页码连续,以题目例子为例,第一面左边页码为:5,右边页码为:12;第二面左边页码为:6,右边页码为:11

好了,现在我们应该了解了报纸的结构了(希望我解释的明白,如果不行就去买张报纸看看吧^^)

那我们如何计算一共由多少张报纸呢?

报纸的页码有着对称的结构,所以前面有多少页,后面也就有多少页

如何计算最大的页数呢?

一份报纸的最小页码肯定是1,当我们拿到这份报纸的一张报纸时,用该报纸上的最小页码减去这报纸的最小页码(1)加上该报纸上的最大页码即可得到这份报纸的最大页码

代码

#include <iostream>
using namespace std;
int main()
{
  int Firstleft=1125;//该张报纸最小页码
  int min=1;//该份报纸最小页码
  int FirstRight=1728;//该份报纸最大页码
  cout<<Firstleft-min+FirstRight;
  return 0;
}