B4431 [语言月赛 202511] 打火基

· · 题解

来源

2025 年 11 月语言月赛,由洛谷网校提供。

考察简单循环。

欢迎报名洛谷网校,报名课程可以获得对应组别的知识点讲解与答疑服务,期待和大家一起进步!点击图片即可报名。

:::align{center} :::

文字题解

本题要求输入 n 个数,判断相邻的两个数之间的奇偶性是否相同。

我们用一个变量 l 表示输入的上一个数,用变量 x 表示当前读入的数。之后,通过 if 语句判断 l\bmod 2x\bmod 2 是否相同即可。在进行下一次循环前,将 x 赋值给 l

需要注意的是,n 个数之间仅有 n-1 对相邻的数。第一对相邻的数为第一个数和第二个数。因此,我们输入 n 后,可以直接再读取一个数到 l 中,之后的循环从 2 开始,循环到 n,就可以正确的处理数据。

代码框架如下:

int l, x, ans = 0;
cin >> n >> l;
for(int i = 2; i <= n; i++) {
  cin >> x;
  if(x % 2 != l % 2) ans++;
  l = x;
}