如何在C++循环中移除指定奇数(5、7、93)?
移除指定奇数的C++代码修改方案
原代码用于输出1到100之间的所有奇数,要移除5、7、93这三个数,这里提供两种实用的实现方式:
方法一:直接添加条件判断
这是最直观的方式,在输出语句前增加判断逻辑,仅当当前数字不是目标排除项时才执行输出:
#include <bits/stdc++.h> using namespace std; int main() { for(int i = 1; i <= 100; i += 2) { // 跳过5、7、93这三个数字 if(i != 5 && i != 7 && i != 93) { cout << i << "\t"; } } return 0; }
这种写法适合排除数量较少的场景,代码简洁直接,不需要额外引入数据结构。
方法二:用集合存储需排除的数字
如果后续需要频繁调整排除列表,用集合存储目标值会更灵活,维护成本更低:
#include <bits/stdc++.h> using namespace std; int main() { // 把要排除的数字存入集合 unordered_set<int> exclude_nums = {5, 7, 93}; for(int i = 1; i <= 100; i += 2) { // 检查当前数字是否不在排除集合内 if(exclude_nums.find(i) == exclude_nums.end()) { cout << i << "\t"; } } return 0; }
后续要新增或删除排除项时,只需要修改集合中的元素即可,无需改动判断逻辑,扩展性更强。
内容的提问来源于stack exchange,提问作者Lemon
相关产品推荐
相关产品推荐

