C++编程题:禾木喜欢的数、非3倍数数字因数、连续相等数统计
好的,已经理解您的需求。我将按照题目的具体要求,给出这三道编程题的C++代码实现和详细解释。 --- ## 🎯 题目一:找出“禾木喜欢的数” (8的倍数且不含数字8) ### 解题思路 - 根据提示,利用除法和取模运算分别提取数字的个位、十位、百位。 - 判断条件:能被8整除,且每一位数字都不等于8。 ### C++ 代码 ```cpp #include <iostream> #include <vector> using namespace std; int main() { int n; cin >> n; vector<int> arr(n); vector<int> result; for (int i = 0; i < n; i++) { cin >> arr[i]; } for (int i = 0; i < n; i++) { int num = arr[i]; int ge = num % 10; int shi = num / 10 % 10; int bai = num / 100; if (num % 8 == 0) { if (ge != 8 && shi != 8 && bai != 8) { result.push_back(num); } } } for (int i = 0; i < result.size(); i++) { cout << result[i]; if (i != result.size() - 1) { cout << " "; } } cout << endl; return 0; } ``` ### 解释 - 使用 `num % 8 == 0` 判断是否为8的倍数。 - 分别提取个位、十位、百位,逐一检查是否等于8。 - 同时满足两个条件的数字存入 `result` 数组,最后按要求格式输出。 --- ## 🎯 题目二:输出指定范围内非3倍数数字的因数 ### 解题思路 - 遍历 `a` 到 `b` 之间的每个整数。 - 如果当前数是3的倍数,则跳过,不输出。 - 否则,从1到该数本身遍历,找出所有能整除该数的因子并输出。 ### C++ 代码 ```cpp #include <iostream> using namespace std; int main() { int a, b; cin >> a >> b; for (int i = a; i <= b; i++) { if (i % 3 == 0) { continue; } for (int j = 1; j <= i; j++) { if (i % j == 0) { cout << j << " "; } } cout << endl; } return 0; } ``` ### 解释 - 外层循环变量 `i` 代表当前要判断的数字。 - `if (i % 3 == 0) continue;` 跳过3的倍数。 - 内层循环遍历 `1` 到 `i`,若 `i % j == 0` 则 `j` 是 `i` 的因数,输出 `j`。 - 每个数字的因数输出完毕后,换行。 ## 🚀 题目三:统计每个数开始有多少个连续相等的数 ### 解题思路 - 遍历数组,对于每个位置,从该位置开始向后统计连续相同数字的个数。 - 遇到不同的数字则停止统计。 ### C++ 代码 ```cpp #include <iostream> #include <vector> using namespace std; int main() { int n; cin >> n; vector<int> a(n); for (int i = 0; i < n; i++) { cin >> a[i]; } for (int i = 0; i < n; i++) { int count = 1; for (int j = i + 1; j < n; j++) { if (a[j] == a[i]) { count++; } else { break; } } cout << count; if (i != n - 1) { cout << " "; } } cout << endl; return 0; } ``` ### 解释 - 对每个位置 `i`,从下一个位置 `j = i+1` 开始向后检查。 - 若 `a[j]` 与 `a[i]` 相同,则计数器 `count` 加1。 - 若不同,则结束当前 `i` 的统计。 - 将 `count` 输出,数字间用空格分隔。 好了,以上就是全部题目解析。如果还有不清楚的地方,欢迎继续提出您的问题。 ######[AI问答 | 1024点数解答 | 2026-06-30 18:14:30]
- 巧用筛法!计算 N 到 M 间数的最大质因数个数(DeepSeek | 245点数解答 | 2026-01-18 12:43:51)70
- C++ 实现:精准统计给定范围 [L, R] 内数字 2 出现的次数及代码详解(字节豆包 | 401点数解答 | 2026-02-05 21:17:05)101
- C++实现:统计[L, R]范围内数字2出现的次数及代码详解(字节豆包 | 489点数解答 | 2026-02-07 17:12:26)115
- C++ 实现:根据给定正整数构造 3×3 方阵并计算满足条件的方案数(阿里通义 | 875点数解答 | 2024-11-13 16:38:24)286
- C++实现:低复杂度求解 3×3 方阵构造方案数(阿里通义 | 708点数解答 | 2024-11-13 16:45:15)320
- C++ 实现:统计给定范围 [I, R] 内数字 7 出现的次数(DeepSeek | 437点数解答 | 2025-06-20 16:58:16)275
- 深入解析洛谷打卡系统:规则揭秘与代码实现(字节豆包 | 316点数解答 | 2025-11-16 19:45:59)159
- C++ 判断正整数倍数:模运算、输出格式与边界处理(DeepSeek | 1916点数解答 | 2026-05-22 20:38:46)35
- Python:用正则表达式从含多种字符的字符串中提取英文、数字和中文单词(GPT | 522点数解答 | 2024-05-31 19:05:27)365
- Python:用正则表达式结合 split 思路提取一行字符串中的英文、数字和中文单词 (GPT | 399点数解答 | 2024-05-31 19:07:31)366
- 繁体字编码代码修改:人物名字合法性验证函数转简体版(字节豆包 | 325点数解答 | 2024-10-21 18:57:01)336
- 计算区间 n 到 m 中数字 x 出现次数的 Python 实现与详解(字节豆包 | 289点数解答 | 2025-12-07 17:14:59)138