以下程序使用枚举法(穷举法)求解满足条件的三位数,横线处应该填入的是( )
#include <iostream>
using namespace std;
int main() {
int count = 0;
for (int i = 100; i <= 999; i++) {
int a = i / 100;
// 横线处
int c = i % 10;
if (a * a + b * b == c * c) {
count++;
}
}
cout << count << endl;
return 0;
}答案B。位运算代码补全要注意区分位运算符(&|^)和逻辑运算符(&&||)。异或(^)常用于交换值。
位运算代码补全容易出错,因为位运算结果不如算术运算直观。记住异或的自反性。
【考点】整除取商(数字百位)|取模运算(数字个位)|十位提取技巧
本题在《GESP 考试大纲》三级"数据类型与基本运算"模块,考查整数除法和取模的位运算本质。命题人卡住绝大多数考生的弱点:只背结论"三位数中间位是十位",却不知如何从 i 精准提取该位——这是算法实现题最易栽跟头的地方。