B4035 [GESP202409 一级] 美丽数字

· · 题解

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

:::align{center} :::

本题考察逻辑运算、分支结构、循环结构。

题目中说,一个正整数是美丽数字当且仅当该正整数是 9 的倍数但不是 8 的倍数。如果有一个数字 a,如何判断这个数字是美丽数字呢?

使用逻辑与运算符 && 表示两个条件同时成立,那么美丽数字的判断要求就是 a % 9 == 0 && a % 8 != 0

问题就好办了:题目要求我们读入 n 个正整数,问有多少个正整数是美丽数字。可以使用一个循环结构控制读入 n 个正整数,在循环结构内部对于每个读入的正整数 a 用上面描述的判断要求判断是否是美丽数字。使用一个计数变量 cnt 记录数字个数。

题目中的 a_1,a_2,\dots a_n 指的是第一个数,第二个数,一直到第 n 个数。如果看不懂这个表述也不要紧,这个表述超过了 GESP 一级大纲。在 GESP 三级,学习了一维数组之后会更深入地学习这个表述。

参考代码(只展示代码关键部分):

for (int i = 1; i <= n; i++) {
    //读入 n 个正整数
    cin >> a;
    if (a % 9 == 0 && a % 8 != 0) //判断是否是美丽数字
        cnt++;//若是,计数变量增加 1
}