这份答案不仅给出了代码,还拆解了“数学逻辑”(怎么想)和“代码实现”(怎么写),并标注了易错点,帮助孩子彻底吃透每一道题。
第一部分:基础算术与数位处理
核心考点:/(整除)和 %(取余)的配合使用,这是处理数字位数的钥匙。
1. 题目:输入一个三位数,分别输出它的百位、十位和个位。
数学逻辑:
百位:把数字除以100,去掉后两位,剩下的就是百位。例如 352 / 100 = 3。
十位:先除以10去掉个位变成 35,再对10取余得到 5。或者先对100取余得到 52, 再除以10得到 5。
个位:直接对10取余。例如 352 % 10 = 2。
参考代码:
#include <iostream> using namespace std; int main(){ int n; cin >> n; // 假设输入 352 // 方法一:逐步剥离法 int bai = n / 100; // 352 / 100 = 3 int shi = (n / 10) % 10; // 352 / 10 = 35, 35 % 10 = 5 int ge = n % 10; // 352 % 10 = 2 cout << "百位:" << bai << ", 十位:" << shi << ", 个位:" << ge << endl; return 0; }💡 易错提醒:很多孩子会写成 n % 100 / 10 求十位,这也是对的,但要记住运算顺序是从左到右。
2. 题目:输入一个两位数,交换它的十位和个位,输出新数。
数学逻辑:
原数 AB (比如 47)。
取出个位 B:47 % 10 = 7。
取出十位 A:47 / 10 = 4。
新数 BA:个位变十位要 *10,十位变个位不用动。即 B * 10 + A。
计算:7 * 10 + 4 = 74。
参考代码:
#include <iostream> using namespace std; int main(){ int n; cin >> n; int ge = n % 10; // 取出个位 int shi = n / 10; // 取出十位 int new_n = ge * 10 + shi; // 重组数字 cout << new_n << endl; return 0; }第二部分:数论入门(质数、回文、完数)
核心考点:循环枚举 + 标志变量 (flag) 的使用。
3. 题目:判断输入的正整数 N 是否为“质数”。
数学逻辑:
质数定义:只能被 1 和它自己整除的大于1的自然数。
判断方法:从 2 开始试除,一直试到 N-1(优化后只需试到 sqrt(N))。如果中间有任何一个数能整除 N,那它就不是质数。
技巧:用一个变量 flag 标记。初始假设它是质数 (flag=1),一旦发现能被整除,就改为不是质数 (flag=0) 并立刻停止循环 (break)。
参考代码:
#include <iostream> #include <cmath> // 使用 sqrt 需要包含这个头文件 using namespace std; int main(){ int n; cin >> n; if(n <= 1){ // 1既不是质数也不是合数,单独处理 cout << "不是质数" << endl; return 0; } int flag = 1; // 1代表“是质”,0代表“非质” // i*i <= n 等价于 i <= sqrt(n),这样循环次数更少,效率更高 for(int i = 2; i * i <= n; i++){ if(n % i == 0){ // 如果能被 i 整除 flag = 0; // 标记为非质数 break; // 既然已经知道不是了,就不用再往后试了,节省时间 } } if(flag == 1) cout << "是质数" << endl; else cout << "不是质数" << endl; return 0; }💡 易错提醒:忘记处理 n=1 的情况,或者循环条件写错导致漏判。
4、题目:判断输入的正整数 N 是否为“回文数”(如 121, 1221)。
数学逻辑:
回文数正着读和反着读一样。
我们可以把原数 N 反转生成一个新数 Rev,如果 Rev == N,就是回文数。
反转算法:每次取出 N 的最后一位 (N%10),加到 Rev 的末尾 (Rev*10 + 最后一位),然后去掉 N 的最后一位 (N/10)。
参考代码:
#include <iostream> using namespace std; int main(){ int n, original_n; cin >> n; original_n = n; // 备份原数,因为后面 n 会被改小 int rev = 0; // 用来存反转后的数 while(n > 0){ int last_digit = n % 10; // 取出最后一位 rev = rev * 10 + last_digit; // 拼接到反转数的末尾 n = n / 10; // 去掉最后一位 } if(rev == original_n) cout << "是回文数" << endl; else cout << "不是回文数" << endl; return 0; }第三部分:周期与规律问题
核心考点:取模运算 % 在周期问题中的神奇作用。
5. 题目:“三天打渔,两天晒网”。输入第 N 天,判断当天是在打渔还是晒网?
数学逻辑:
周期长度 = 3 + 2 = 5 天。
第 1, 2, 3 天:打渔。
第 4, 5 天:晒网。
第 6 天又回到第 1 天的状态...
用 N % 5 看余数:
余数 1, 2, 3 → 打渔
余数 4, 0 (整除代表周期的最后一天) → 晒网
参考代码:
#include <iostream> using namespace std; int main(){ int n; cin >> n; int r = n % 5; // 计算在周期里的位置 // 余数是 1,2,3 时打渔;余数是 4 或 0 时晒网 if(r == 1 || r == 2 || r == 3){ cout << "打渔" << endl; } else { cout << "晒网" << endl; } return 0; }💡 易错提醒:很多孩子会忽略 r==0 的情况,以为余数只有1-4。在C++中,5的倍数余数是0,对应周期的最后一天。
6. 题目:有一串彩灯按“红、黄、蓝、绿”顺序循环闪烁。输入第 N 盏灯的颜色。
数学逻辑:
周期长度 = 4。
余数 1 → 红
余数 2 → 黄
余数 3 → 蓝
余数 0 → 绿 (因为整除代表第4个)
参考代码:
#include <iostream> using namespace std; int main(){ int n; cin >> n; int r = n % 4; if(r == 1) cout << "红" << endl; else if(r == 2) cout << "黄" << endl; else if(r == 3) cout << "蓝" << endl; else cout << "绿" << endl; // 这里处理 r==0 的情况 return 0; }第四部分:综合应用题
核心考点:累加器 (sum) 和计数器 (count) 的结合使用。
7. 题目:计算 1 到 100 之间,所有能被 3 整除但不能被 5 整除的数的和。
数学逻辑:
遍历 1 到 100 的每一个数 i。
条件判断:i % 3 == 0 (能被3整除) 并且 i % 5 != 0 (不能被5整除)。
如果满足条件,就把 i 加到总和 sum 里。
参考代码:
#include <iostream> using namespace std; int main(){ int sum = 0; // 初始化总和为0 for(int i = 1; i <= 100; i++){ // 同时满足两个条件 if(i % 3 == 0 && i % 5 != 0){ sum += i; // 等价于 sum = sum + i } } cout << sum << endl; // 输出结果 1368 return 0; }8. 题目:输入 N,计算 N 的各位数字之和。(例如输入 123,输出 1+2+3=6)
数学逻辑:
这和“反转数字”很像,但不需要反转,只需要累加。
每次 N % 10 拿到最后一位,加到 sum 里。
然后 N / 10 去掉最后一位。
直到 N 变成 0 为止。
参考代码:
#include <iostream> using namespace std; int main(){ int n; cin >> n; int sum = 0; while(n > 0){ sum += n % 10; // 加上最后一位 n /= 10; // 去掉最后一位 } cout << sum << endl; return 0; }给家长的辅导建议
先动手画流程图:对于周期问题和数位拆分,让孩子先在纸上画一画,比如写出 1234,箭头指向怎么拆,比直接敲代码效果好得多。
强调 break 的作用:在质数判断中,一旦找到因数就要 break,这是编程思维中“剪枝”优化的雏形,能帮孩子理解为什么程序跑得快。
多测边界值:让孩子自己测试特殊数据,比如质数判断测 1 和 2,周期问题测 5 的倍数,培养严谨性。
零基础孩子每天学多久能顺利考过GESP一级
零基础孩子每天学多久能顺利考过GESP一级-CSDN博客
零基础孩子从GESP一级到四级18个月的GESP全阶段学习计划
零基础孩子从GESP一级到四级18个月的GESP全阶段学习计划-CSDN博客
如何顺利通过GESP C++ 二级
如何顺利通过GESP C++ 二级-CSDN博客
如何顺利通过GESP C++ 三级
如何顺利通过GESP C++ 三级-CSDN博客
如何通过GESP C++四级
如何通过GESP C++四级-CSDN博客
如何顺利通过GESP C++ 四级
如何顺利通过GESP C++ 四级_gesp c++四级-CSDN博客
GESP C++四级通过率如何
GESP C++四级通过率如何-CSDN博客
GESP C++ 四级备考计划
GESP C++ 四级备考计划-CSDN博客
如何顺利通过 GESP C++ 五级
如何顺利通过 GESP C++ 五级-CSDN博客
如何通过GESP C++六级
如何通过GESP C++六级-CSDN博客
如何通过GESP C++七级
如何通过GESP C++七级-CSDN博客
更详细的GESP C++七级备考计划
更详细的GESP C++七级备考计划-CSDN博客
GESP C++七级的备考建议
GESP C++七级的备考建议_七级c++-CSDN博客
GESP C++七级详细备考计划按天打卡执行表
GESP C++七级详细备考计划按天打卡执行表-CSDN博客
GESP C++七级考前一周冲刺每日任务清单
GESP C++七级考前一周冲刺每日任务清单-CSDN博客
如何准备GESP C++八级考试
如何准备GESP C++八级考试-CSDN博客
如何通过GESP C++八级
如何通过GESP C++八级-CSDN博客
GESP C++八级学习与备考
GESP C++八级学习与备考-CSDN博客
GESP C++跳级分数及GESP免考CSP-J1 CSP-S1要求
GESP C++跳级分数及GESP免考CSP-J1 CSP-S1要求-CSDN博客
GESP C++ 一级(2026.09)
GESP C++ 一级(2026.09)-CSDN博客
GESP C++ 二级(2026.09)
GESP C++ 二级(2026.09)-CSDN博客
GESP C++ 三级(2026.09)
GESP C++ 三级(2026.09)-CSDN博客
GESP C++ 四级(2026.09)
GESP C++ 四级(2026.09)-CSDN博客
GESP C++五级(2026.09)
GESP C++五级(2026.09)-CSDN博客
GESP C++六级(2026.09)
GESP C++六级(2026.09)-CSDN博客
GESP七级知识点、七级考试考点
GESP七级知识点、七级考试考点-CSDN博客
GESP C++八级学习与备考
GESP C++八级学习与备考-CSDN博客
2026年CSP-J1、CSP-S1初赛(2026。09)
2026年CSP-J1、CSP-S1初赛(2026。09)-CSDN博客
AtCoder Beginner Contest 131-150
AtCoder Beginner Contest 131-150-CSDN博客
Atcoder Beginner Contest 151-180
Atcoder Beginner Contest 151-180-CSDN博客
AtCoder Beginner Contest 181-200
AtCoder Beginner Contest 181-200-CSDN博客
AtCoder Beginner Contest 201-220
AtCoder Beginner Contest 201-220-CSDN博客
AtCoder Beginner Contest 221-240
AtCoder Beginner Contest 221-240-CSDN博客
AtCoder Beginner Contest 241-260
AtCoder Beginner Contest 241-260-CSDN博客
AtCoder Beginner Contest 261-280
AtCoder Beginner Contest 261-280-CSDN博客
AtCoder Beginner Contest 281-300
AtCoder Beginner Contest 281-300-CSDN博客
AtCoder Beginner Contest 301-350
AtCoder Beginner Contest 301-350-CSDN博客
AtCoder Beginner Contest 131-366
AtCoder Beginner Contest 131-366-CSDN博客
AtCoder Beginner Contest 351-400
AtCoder Beginner Contest 351-400-CSDN博客
AtCoder Beginner Contest 401-458
AtCoder Beginner Contest 401-458-CSDN博客
Codeforces Round 881-930
Codeforces Round 881-930-CSDN博客
Codeforces(931-960)
Codeforces(931-960)-CSDN博客
Codeforces Round 881-1000
Codeforces Round 881-1000-CSDN博客
Codeforces(951-1000)
Codeforces(951-1000)-CSDN博客
Codeforces Round 1001-1030
Codeforces Round 1001-1030-CSDN博客
Codeforces Round 1018--1032
Codeforces Round 1018--1032_cf2109c-CSDN博客
Codeforces Round 1031-1050
Codeforces Round 1031-1050-CSDN博客
Codeforces Round 1051-1076
Codeforces Round 1051-1076-CSDN博客
Codeforces Round 1061-1070
Codeforces Round 1061-1070-CSDN博客
考研、保研(2026.07.21)
考研、保研(2026.07.21)-CSDN博客
清华求真书院预科班相关
清华求真书院预科班相关-CSDN博客
2025研究前沿、2025全球工程前沿
2025研究前沿、2025全球工程前沿-CSDN博客
NOI省选(2026.07.08)
NOI省选(2026.07.08)-CSDN博客
暑假CSP-S NOIP集训学生要做哪些内容,集训完如何消化所学的知识
暑假CSP-S NOIP集训学生要做哪些内容,集训完如何消化所学的知识-CSDN博客
OJ(Online Judge)一览
OJ(Online Judge)一览-CSDN博客
信奥的数学题单(2026.06.15)
信奥的数学题单(2026.06.15)_c++编程与信息学竞赛数学思维-CSDN博客
大宝小宝微积分、小学生微积分入门书籍
大宝小宝微积分、小学生微积分入门书籍-CSDN博客
2025年数学前沿
2025年数学前沿-CSDN博客
中小学、大学数学学习(2026.07)
中小学、大学数学学习(2026.07)-CSDN博客
英语学习资料集(2026.07)
英语学习资料集(2026.07)-CSDN博客
物理学习资料集(2026.07)
物理学习资料集(2026.07)-CSDN博客
CSP-J满分题单
CSP-J满分题单-CSDN博客
CSP-J、CSP-S、NOIP题单
CSP-J、CSP-S、NOIP题单-CSDN博客
CSP-J CSP-S NOIP的题目来源
CSP-J CSP-S NOIP的题目来源-CSDN博客
NOI省选真题
NOI省选真题-CSDN博客
NOI省选(2026.07.08)
NOI省选(2026.07.08)-CSDN博客
信奥学奥赛省选训练洛谷、CF(CodeForces)题单推荐(2026)
信奥学奥赛省选训练洛谷、CF(CodeForces)题单推荐(2026)_信奥从普及到省队精选题单-CSDN博客
信息学竞赛 省选题单 整理(2024.01.03)
信息学竞赛 省选题单 整理(2024.01.03)_树树发现好多计算机中的单词都是缩写的,如gdb,它是全称gnu debug的缩写。但是,有-CSDN博客
省选题单总结
省选题单总结-CSDN博客
NOI数学之入门级(2025.01.07)
NOI数学之入门级(2025.01.07)_noi教师入门级题目-CSDN博客
NOI 数学 2.2 提高级(2025.01.07
NOI 数学 2.2 提高级(2025.01.07)_noi提高级数论-CSDN博客
NOI级 2.3.4 数学与其他
NOI级 2.3.4 数学与其他-CSDN博客
NOI 数据结构
数据结构精要:线性结构与复杂树解析-CSDN博客
NOI 数学
NOI 数学_noi 数学汇总-CSDN博客
NOI数学 学习 相关书籍及视频等资料(不包括CTS内容)
NOI数学 学习 相关书籍及视频等资料(不包括CTS内容)_noi教材-CSDN博客
信奥中的数学学习资料汇总(2022.10.31)
信奥中的数学学习资料汇总(2022.10.31)_新编全国青少年信息学奥林匹克竞赛复赛csdn-CSDN博客
信奥的数学学习(2025.02.13)
信奥的数学学习(2025.02.13)_信奥stl pdf-CSDN博客
CSP-J/S 竞赛常用初始化与极值获取指南
CSP-J/S 竞赛常用初始化与极值获取指南
AtCoder Beginner Contest 131-458
AtCoder Beginner Contest 131-458-CSDN博客
GESP一级--八级 202303--202606(2026.08)
GESP一级--八级 202303--202606(2026.08)-CSDN博客
Codeforces Round 881-1076
Codeforces Round 881-1076-CSDN博客
杨校老师课堂之带你备战【C++】GESP四级_核心知识点梳理(针对高频考点)
杨校老师课堂之带你备战【C++】GESP四级_核心知识点梳理(针对高频考点)_gesp四级复习-CSDN博客
杨校老师课堂之带你备战【C++】GESP一级_一个月规划
杨校老师课堂之带你备战【C++】GESP一级_一个月规划_备战gesp一级-CSDN博客
杨校老师课堂之带你备战【C++】GESP二级_一个月规划
杨校老师课堂之带你备战【C++】GESP二级_一个月规划_gesp二级考试知识点-CSDN博客
杨校老师课堂之带你备战【C++】GESP三级_一个月规划
杨校老师课堂之带你备战【C++】GESP三级_一个月规划_gesp3考试大纲-CSDN博客
杨校老师课堂之带你备战【C++】GESP四级_一个月规划
杨校老师课堂之带你备战【C++】GESP四级_一个月规划_gesp四级大纲-CSDN博客
杨校老师课堂之带你备战【C++】GESP五级_一个月规划
杨校老师课堂之带你备战【C++】GESP五级_一个月规划_gesp5级一个月准备-CSDN博客
杨校老师课堂之带你备战【C++】GESP六级_一个月规划
杨校老师课堂之带你备战【C++】GESP六级_一个月规划_gesp六级备考-CSDN博客
杨校老师课堂之带你备战【C++】GESP七级_一个月规划
杨校老师课堂之带你备战【C++】GESP七级_一个月规划_gesp大纲中 动态规划最值优化 指的是什么-CSDN博客
杨校老师课堂之带你备战【C++】GESP八级_一个月规划
杨校老师课堂之带你备战【C++】GESP八级_一个月规划_gesp1-8级通关宝典-CSDN博客