今天看到一个小学数学题----"1-99中随意选两个数, 两值不相等,且和小于100,问有多少中可能.".
解法一, 编程思维(普通程序员).
双重for循环.if判断.集合去重. 硬编码, 简单快速
则,得解...
解法二,数学思维(学霸程序员).
1+2,1+3,...1+98 --> 97种情况
2+3,2+4....2+97 --> 95种情况
...
49+50 --> 1种情况.
应用 数学归纳法, 得 等差数列求和的公式
则,得解... 不需要程序.
解法三.编程思维(2b程序员).
最后剩下的就是这种情况.把简单问题极度复杂化的情况. 如下代码.
(面向对象,集合类,jdk8..)
package com.dudo.dailytest; import java.util.*; import java.util.concurrent.CopyOnWriteArraySet; /** * Created by zkai on 2014/12/3. */ public class PrimarySchoolTopic { private class Nums implements Comparable { private int a; private int b; public Nums(int a, int b) { this.a = a; this.b = b; } public boolean verify() { return verifyNum(a) && verifyNum(b) && a != b && a + b < maxSum; } private boolean verifyNum(int i) { return i >= min && i <= max; } @Override public int hashCode() { return getStr().hashCode(); } private String getStr() { String format; if (a > b) { format = String.format("%s+%s=%s", b, a, a + b); } else { format = String.format("%s+%s=%s", a, b, a + b); } return format; } @Override public String toString() { return getStr(); } @Override public boolean equals(Object obj) { if (obj == null || !(obj instanceof Nums)) { return false; } Nums two = (Nums) obj; return (this.a == two.a && this.b == two.b) || (this.a == two.b && this.b == two.a); } // case 2 @Override public int compareTo(Object obj) { if (obj == null || !(obj instanceof Nums)) { return -1; } Nums two = (Nums) obj; return two.a == a ? two.b == b ? 0 : two.b - b : two.a - a; } } public static void main(String[] args) { PrimarySchoolTopic topic = new PrimarySchoolTopic(1, 99, 100); topic.compute().print(); } private int min; private int max; private int maxSum; Set<Nums> numCount = new HashSet<>(); // case1 需要实现hashCode().equals(). // Set<Nums> numCount = new TreeSet<>(); // case2 需要实现 Comparable.compareTo() [或在构造时传入 Comparator] // Set<Nums> numCount = new CopyOnWriteArraySet<>(); // case3 仅需要 equals(). public PrimarySchoolTopic(int min, int max, int maxSum) { this.min = min; this.max = max; this.maxSum = maxSum; } public PrimarySchoolTopic compute() { for (int i = min; i <= max; i++) { for (int j = min; j <= max; j++) { Nums nums = new Nums(i, j); if (nums.verify()) { numCount.add(nums); } } } return this; } public int size() { return numCount.size(); } public PrimarySchoolTopic print() { numCount.forEach(System.out::println); System.out.println(numCount.size()); return this; } }
=========== 华丽分割线 以下为java复习内容 ==========================
1. hashSet --- equals. hashCode.
2. treeSet --- 比较器
3. arrayset --- equals
4. jdk8 foreach
5. jdk8 function 编程.
6. .....
相关推荐
小学数学教育是基础教育的重要组成部分,它为孩子们的未来学习打下坚实的基础。在这个领域,教师的角色至关重要。根据提供的文档内容,我们可以提炼出以下几个关键的知识点: 1. **情感与态度**:在数学教育中,...
信息化环境下,小学数学复习课教学方法的探索与实践已经成为提高教学质量的重要途径。在当前的信息时代,教师需要利用先进的信息技术手段,创新复习策略,以激发学生的学习兴趣,增强复习的实效性。 首先,设置情景...
这份文档是针对小学一年级上册学生的数学复习资料,包含了多个知识点和练习题,旨在帮助学生巩固基础数学概念和技能。以下是对这些知识点的详细说明: 1. **基本加减法**:题目中的一系列加减法练习是让学生熟悉并...
从给定的文件信息来看,这是一份名为“小学一年级数学练习题一-小学一年及数学习题”的文档。文档的描述和标题基本一致,没有提供除了练习题内容之外的其他信息。而标签为“资料”,说明这是一个教学资源。从【部分...
【优秀资料(2021-2022年收藏)小学四升五数学暑假衔接教材补课辅导专用.doc】是一份专为即将从小学四年级升入五年级的学生设计的数学暑假学习材料,旨在帮助孩子们在假期期间巩固并提前预习五年级的数学知识,确保...
教师用户通过教师工号登录进入小学数学在线测试系统后,通过题库管理可以按照题目类型进行试题的内容添加,包括单选多项、填空判断等类型,借助试卷管理模块实现在线试卷生成,利用成绩统计可以查看到学生成绩、错题...
教师用户通过教师工号登录进入小学数学在线测试系统后,通过题库管理可以按照题目类型进行试题的内容添加,包括单选多项、填空判断等类型,借助试卷管理模块实现在线试卷生成,利用成绩统计可以查看到学生成绩、错题...
教师用户通过教师工号登录进入小学数学在线测试系统后,通过题库管理可以按照题目类型进行试题的内容添加,包括单选多项、填空判断等类型,借助试卷管理模块实现在线试卷生成,利用成绩统计可以查看到学生成绩、错题...
Java基础综合练习是编程学习的重要环节,特别是在嗖嗖移动项目的实践中,可以深入理解并掌握Java语言的核心概念和技术。该项目涵盖了用户登录、用户注册、应用功能使用、虚拟货币充值、服务费用说明、用户咨询服务等...
小学六年级数学总复习PPT学习教案主要涵盖了数学的基础概念、数的认识与运算、分数、小数、负数以及运算定律等多个重要知识点。以下是对这些内容的详细解释: 1. **复习方法**: - 独立整理:学生先自主复习每个...
【新北师大版小学数学三年级下册期末复习计划】 针对即将到来的期末考试,这篇复习计划旨在帮助学生巩固三年级下学期的数学知识,主要涵盖数与代数、图形与几何、统计与概率以及实践活动四大领域。 一、数与代数 1...
这篇文档是关于小学数学研修作业,主要关注的是三年级数学课程中的"数学广角——集合"这一主题。教学设计旨在通过信息化手段,帮助学生理解和掌握集合的概念,以及如何运用集合思想解决实际问题。 【教材分析】 ...
中国小学数学教学大纲在不同年代的发展反映了教育理念的演变和对儿童数学能力...随着时代的进步,小学数学教育更加注重与现实生活的联系,培养学生的创新思维和实践能力,为他们在未来的生活和学习中奠定坚实的基础。
Java基础框架集成与快速开发平台是现代企业级应用开发中的常用技术栈,它极大地提高了开发效率,降低了项目复杂性。本平台主要基于SpringMVC、MyBatis和Spring三大核心框架,结合Maven进行项目构建和依赖管理。下面...
这份小学数学北师大版一下总复习PPT教案详尽地涵盖了数的认识、数与代数以及数的运算等核心概念,旨在帮助学生巩固和深化对基础数学知识的理解。以下是根据PPT内容提炼的知识点: 1. **数的认识**: - 表示数的...
【标题】: "小学语文毕业复习策略探讨" 【描述】: 本文主要讨论了小学语文毕业复习的关键点,强调了遵循《语文课程标准》的重要性,以及如何针对不同学生的能力进行有效的复习指导。 【标签】: 教育, 小学语文, ...
3. **基础复习的重要性**:在进行专题复习时,不能忽视基础知识的复习。全面回顾高中的数学知识是必不可少的。可以借助教材和参考书,按照章节逐步复习,通过做题来检验对知识的理解和运用。同时,课本上的内容不应...
1. **中考数学试题结构**:通常,中考数学试题包括选择题、填空题、解答题等不同类型的题目,覆盖了代数、几何、概率统计、函数等多个数学领域。 2. **代数**:这部分可能涉及到一次方程、二次方程、不等式、函数的...
小学数学教师招聘考试试题主要考察了数学的基础知识和教学理论,包括填空题、选择题、解答题、分析题、论述题以及案例分析。以下是各部分的知识点详解: 一、填空题: 1. 此题考察数字的排列与近似数的概念。用0-9...
小学数学计算教学是培养学生基本运算能力和数学思维的...这些知识点贯穿于整个小学数学计算教学中,旨在逐步建立学生的运算技能,培养他们的逻辑思维和问题解决能力,为后续更复杂的数学概念和问题解决打下坚实基础。