GESP 一级 · GESP 202606 C++ 一级 第 13 题

选择题 · 答案 B · 考点:位运算

← 整套速查表 GESP 一级 全部真题

题目

以下 C++ 代码可以找出千位、百位、十位和个位满足特定条件的四位数(例如各位数字的四次方和等于原数,即“四叶玫瑰数”),横线处应该填入的是( )。

int count = 0;
for (int n = 1000; n <= 9999; n++) {
    int a = n / 1000;
    int b = (n / 100) % 10;
    _________________________    // L1
    int d = n % 10;
    if (a * a * a * a + b * b * b * b + c * c * c * c + d * d * d * d == n) { // 特定条件
        count++;
    }
}
答案:B

考点

位运算 讲解 →位运算 真题汇总 →

解题思维

看到 a、b、d 的提取方式,先想十位需先除 10 再取模

常见错误

A 项除两次得百位剩余数;C、D 项先取模得个位再除恒为 0

详细解析(节选)

考点:数位提取|整除取模

解析

十位数字需先去掉个位再取模,即 (n / 10) % 10,对应选项 B。

同考点真题

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断