Java编程:基础算法实践

需积分: 49 4 下载量 55 浏览量 更新于2024-09-09 收藏 5KB TXT 举报
"这篇资源包含了10个简单的Java算法实现,包括求最小公倍数、判断水仙花数、正整数分解质因数、找出100-200之间的素数、处理非波拉契数列问题、计算字符串数字之和、数字位数反转与打印、排序算法、杨辉三角以及解决‘报数游戏’问题。" 1. 求最小公倍数(LCM):这里使用了辗转相除法(欧几里得算法)找到两个数的最大公约数(GCD),然后通过公式`LCM = A * B / GCD(A, B)`来计算最小公倍数。在给出的代码中,`commonDivisor()`方法实现了GCD的计算,`commonMultiple()`方法用于计算两个数的LCM,`commonMultiple()`的数组版本则用于计算多个数的LCM。 2. 水仙花数:水仙花数是指一个三位数,其每个位上的立方和等于该数本身。例如,153就是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。在给出的代码中,通过循环遍历100到999,对每个数进行判断,如果满足条件就打印出来。 3. 正整数分解质因数:对于一个正整数n,将其分解为质因数的乘积。在`Test3`类的`PrimeFactors`方法中,通过不断用2去除n,直到n变为1,将每次得到的质因数打印出来,实现了质因数分解。 4. 找出100-200之间的素数:素数是只能被1和自身整除的正整数。在循环中,检查每个数是否为素数,如果是,就打印出来。这个过程通常通过检查2到数的平方根之间的所有整数是否能整除该数来优化。 5. 非波拉契数列问题:未提供具体代码,但波拉契数列通常指的是斐波那契数列,其特点是每一项等于前两项之和。非波拉契数列可能是指一个与斐波那契数列不同的递推序列。 6. 计算字符串数字之和:这个问题是将一个数字的各个位数相加,例如`sum=a+aa+aaa+aaaa+...`。可以将数字转换为字符串,然后逐位处理。 7. 求数字位数及逆序打印:输入一个不超过5位的正整数,输出其位数并逆序打印。可以通过模运算和除法获取每一位数字,然后反向存储并打印。 8. 排序算法:虽然没有给出具体的排序算法代码,但常见的排序算法有冒泡排序、选择排序、插入排序、快速排序等。这些算法可以用于对一组数据进行升序或降序排列。 9. 杨辉三角:又称帕斯卡三角,是一个二维数组,其中每个数字是上一行相邻两个数字的和。它可以用来求解组合数,也可以在二项式定理中发挥作用。 10. 报数游戏(约瑟夫环问题):n个人围成一圈,从第一个人开始报数,报到1-3的人退出圈子,重复这个过程,直到只剩一个人。问题的关键在于找到循环的规律。 以上10个Java算法展示了基础的数学逻辑和编程技巧,适合初学者进行练习和提高。
2021-11-08 上传
《Java 基础核心总结》 Java 概述 什么是 Java2 Java 的特点Java 开发环境 JDK JRE Java 开发环境配置 Java 基本语法 数据类型基础语法运算符 Java 执行控制流程条件语句 if 条件语句 if...else 条件语句if...else if 多分支语句switch 多分支语句 循环语句 while 循环语句do...while 循环for 循环语句 跳转语句 break 语句 continue 语句面向对象 类也是-种对象对象的创建 属性和方法 构造方法 方法重载 方法的重写 初始化 类的初始化 成员初始化 构造器初始化初始化顺序 数组初始化 对象的销毁 对象作用域 this 和 super 访问控制权限继承 多态组合代理 向上转型static final 接口和抽象类接口 抽象类异常 认 识 Exception 什么是 Throwable 常见的 Exception 与 Exception 有关的 Java 关键字 throws 和 throw try 、finally 、catch 什么是 Error 内部类 创建内部类集合 Iterable 接口顶层接口 ArrayList Vector LinkedList 类Stack HashSet TreeSet LinkedHashSet 类 PriorityQueue HashMap TreeMap 类 LinkedHashMap 类 Hashtable 类IdentityHashMap 类WeakHashMap 类 Collections 类集合实现类特征图 泛形 泛型的使用 用泛型表示类 用泛型表示接口泛型方法 泛型通配符 反射 Class 类Field 类Method 类ClassLoader 类 枚举 枚举特性 枚举和普通类-样枚举神秘之处 枚举类 I/O File 类 基础 IO 类和相关方法InputStream OutputStream Reader 类Writer 类 InputStream 及其子类 OutputStream 及其子类Reader 及其子类Writer 及其子类 注解 关于 null 的几种处理方式大小写敏感 null 是任何引用类型的初始值 null 只是-种特殊的值使用 Null-Safe 方法null 判断 关于思维导图 Java.IO Java.lang Java.math Java.net Java 基础核心总结 V2.0 IO 传统的 BIO BIO NIO 和 AIO 的区别什么是流 流的分类 节点流和处理流 Java IO 的核心类 File Java IO 流对象 字节流对象InputStream OutputStream 字符流对象Reader Writer 字节流与字符流的转换新潮的 NIO 缓冲区(Buffer)通道(Channel) 示例:文件拷贝案例 BIO 和 NIO 拷贝文件的区别操作系统的零拷贝 选择器(Selectors) 选择键(SelectionKey) 示例:简易的客户端服务器通信 集合 集合框架总览 -、Iterator Iterable ListIterator 二、Map 和 Collection 接口Map 集合体系详解 HashMap LinkedHashMap TreeMap WeakHashMap Hashtable Collection 集合体系详解 Set 接口 AbstractSet 抽象类SortedSet 接口HashSet LinkedHashSet TreeSet List 接口 AbstractList 和 AbstractSequentialList Vector Stack ArrayList LinkedList Queue接口Deque 接口 AbstractQueue 抽象类LinkedList ArrayDeque PriorityQueue 反射的思想及作用 反射的基本使用 获取类的 Class 对象构造类的实例化对象获取-个类的所有信息 获取类中的变量(Field) 获取类中的方法(Method) 获取类的构造器(Constructor) 获取注解 通过反射调用方法反射的应用场景 Spring 的 IOC 容器反射 + 抽象工厂模式 JDBC 加载数据库驱动类反射的优势及缺陷 增加程序的灵活性破坏类的封装性 性能损耗 代理模式 静态代理与动态代理常见的动态代理实现JDK Proxy CGLIB JDK Proxy 和 CGLIB 的对比动态代理的实际应用 Spring AOP 变量 变量汇总实例变量 实例变量的特点全局变量 静态变量 静态变量的特点类变量 局部变量