从基础到进阶的5个经典题目,逐步掌握枚举算法与计算思维
找出所有由1、2、3、4组成的不重复三位数
基础循环枚举、数字不重复条件、循环嵌套结构
提示:从1-4分别作为百位、十位、个位,但需要确保三个数字互不相同
预期结果: 24个不重复的三位数
123, 124, 132, 134, 142, 143, 213, 214, 231, 234, 241, 243, 312, 314, 321, 324, 341, 342, 412, 413, 421, 423, 431, 432
Scratch实现要点: 使用三个变量分别表示百位、十位、个位,三层循环嵌套,添加条件判断确保三个数字不同。
从1-9中找出所有三位数,要求百位+十位+个位=12
条件判断、变量求和、计数器使用、数字分解
提示:注意百位不能为0,三位数的范围是100-999
示例结果:
129(1+2+9=12), 138(1+3+8=12), 147, 156, 165, 174, 183, 192, 219, 228, 237, ... 共73个三位数
关键技巧: 在循环内部计算各位数字之和,用条件判断筛选符合要求的数字。
找出所有水仙花数(三位数,各位数字立方和等于自身)
数学运算、数字分离算法、复杂条件判断、幂运算应用
提示:可以使用"除法"和"取余"运算分离各位数字,注意立方运算的实现
正确答案:
153, 370, 371, 407
验证示例:
153 = 1³ + 5³ + 3³ = 1 + 125 + 27 = 153
370 = 3³ + 7³ + 0³ = 27 + 343 + 0 = 370
找出100以内满足a²+b²=c²的所有正整数组合(a,b,c)
枚举优化策略、避免重复计算、多重条件判断、算法效率
提示:通过设置a
示例结果:
(3,4,5), (5,12,13), (6,8,10), (7,24,25), (8,15,17), (9,12,15), (9,40,41), (10,24,26), ... 共52组勾股数
优化技巧: 设置a从1到98,b从a+1到99,c从b+1到100,可以避免重复并提高效率。
解决"百钱百鸡"问题:公鸡5文钱1只,母鸡3文钱1只,小鸡1文钱3只,用100文钱买100只鸡
复杂约束条件、整数除法处理、多个变量枚举、实际问题建模
提示:小鸡数量必须是3的倍数,可以减少枚举范围。公鸡最多20只,母鸡最多33只。
正确答案: 4种方案
1. 公鸡0只,母鸡25只,小鸡75只
2. 公鸡4只,母鸡18只,小鸡78只
3. 公鸡8只,母鸡11只,小鸡81只
4. 公鸡12只,母鸡4只,小鸡84只
验证示例: 方案2:4只公鸡(20文) + 18只母鸡(54文) + 78只小鸡(26文) = 100只鸡(100文)
第1课时:题目1-2,掌握基础枚举结构和条件判断
第2课时:题目3,学习数字处理和复杂条件
第3课时:题目4-5,学习枚举优化和综合应用
1. 基础循环嵌套 → 2. 简单条件判断 → 3. 数学运算应用 → 4. 枚举优化策略 → 5. 多约束综合问题
从易到难,循序渐进,每个题目解决一个核心问题
• 让学有余力的学生尝试优化算法效率
• 设计自己的枚举问题
• 比较枚举法与其他算法的优劣
• 尝试用更少的循环次数解决相同问题
1. 鼓励学生从最简单的暴力枚举开始,再思考优化方法
2. 引导学生发现循环中的重复计算,尝试减少循环次数
3. 强调实际问题的数学建模过程,将问题转化为程序可处理的形式
4. 使用Scratch的"列表"功能存储和显示结果,增强可视化效果