Java经典算法实战:兔子繁殖与素数判定

需积分: 9 3 下载量 91 浏览量 更新于2024-07-28 收藏 121KB DOC 举报
Java经典算法大全是一份针对Java编程语言的实用教程,其中包含了三个具有代表性的算法问题示例。这些问题涉及到了不同的编程技巧和数学概念,对于提升Java编程能力和理解算法思想非常有帮助。 第一个程序【程序1】是关于著名的斐波那契数列问题。斐波那契数列是一个经典的动态规划问题,每项数值是前两项之和,即F(n) = F(n-1) + F(n-2)。在这个例子中,程序通过定义两个变量f1和f2来表示前两个月的兔子对数,然后使用for循环计算从第三个月开始每个月的兔子对数。程序的输出展示了这个数列在前15个月内的发展情况,即1, 1, 2, 3, 5, 8, 13, 21, ...,这恰好对应了兔子繁殖的规律。 第二个程序【程序2】则是关于素数判断的算法。素数是指在大于1的自然数中,除了1和它本身以外不再有其他正因数的数。程序采用了试除法,从2到sqrt(i)(i的平方根)检查每个数是否能整除i,如果不能,则i是素数。程序遍历101到199之间的数,计数器count用于统计素数个数,并将素数输出。这个过程展示了如何运用基础数学原理在编程中进行简单的素数筛选。 第三个程序【程序3】涉及到了数学趣味性问题——“水仙花数”(Narcissus Number)。水仙花数是指一个三位数,其各位数字的立方和等于该数本身。例如153就是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。程序通过for循环遍历100到999之间的每一个三位数,将其各位数字提取出来并计算立方和,如果相等则认为是水仙花数,并进行输出。这个问题不仅考察了编程中的条件判断和循环控制,也展示了如何结合数学逻辑在实际编程中解决问题。 总结来说,这份Java经典算法大全提供了基础到进阶的编程实践案例,包括递归、循环结构、数学原理的应用等,对提高Java程序员的算法素养和解决问题的能力有很大帮助。学习者可以通过解决这些实例,加深对Java语言特性和算法核心思想的理解。
2010-11-13 上传
河内塔 费式数列 巴斯卡三角形 三色棋 老鼠走迷官(一) 老鼠走迷官(二) 骑士走棋盘 八个皇后 八枚银币 生命游戏 字串核对 双色、三色河内塔 背包问题(Knapsack Problem) 数、运算 蒙地卡罗法求 PI Eratosthenes筛选求质数 超长整数运算(大数运算) 长 PI 最大公因数、最小公倍数、因式分解 完美数 阿姆斯壮数 最大访客数 中序式转后序式(前序式) 后序式的运算 关于赌博 洗扑克牌(乱数排列) Craps赌博游戏 约瑟夫问题(Josephus Problem) 集合问题 排列组合 格雷码(Gray Code) 产生可能的集合 m元素集合的n个元素子集 数字拆解 排序 得分排行 选择、插入、气泡排序 Shell 排序法 - 改良的插入排序 Shaker 排序法 - 改良的气泡排序 Heap 排序法 - 改良的选择排序 快速排序法(一) 快速排序法(二) 快速排序法(三) 合并排序法 基数排序法 搜寻 循序搜寻法(使用卫兵) 二分搜寻法(搜寻原则的代表) 插补搜寻法 费氏搜寻法 矩阵 稀疏矩阵 多维矩阵转一维矩阵 上三角、下三角、对称矩阵 奇数魔方阵 4N 魔方阵 2(2N+1) 魔方阵 堆叠、伫列 堆叠 - 使用阵列实作 堆叠 - 使用链结实作(C 语言动态记忆体宣告) 堆叠 - 使用 Java 作物件封装 伫列 - 使用阵列实作 伫列 - 使用链结实作(C语言动态记忆体宣告) 伫列 - 使用Java 作物件封装 其它 自产生程式(quine)