JAVA算法实践:素数判断与水仙花数

需积分: 10 3 下载量 142 浏览量 更新于2024-07-28 1 收藏 256KB DOC 举报
"JAVA经典算法40例包含了三个不同的编程题目,分别是:计算斐波那契数列、判断素数以及找出水仙花数。这些题目旨在帮助学习者掌握基础的算法设计和Java编程技巧。" 斐波那契数列是一个经典的数学概念,在编程中常用于练习递归和动态规划。在提供的【程序1】中,展示了两种方法来计算斐波那契数列的前20项。第一种是直接在主函数中调用递归函数,第二种是将递归函数封装在一个单独的类中。递归函数`f(x)`实现了斐波那契数列的定义,即每个数是前两个数的和。当输入值为1或2时返回1,否则返回前两个数的和。这种方法虽然直观,但效率较低,因为它会重复计算许多相同的子问题。 【程序2】涉及的是素数判断,目标是找出101到200之间的所有素数。素数是只有1和其本身两个正因数的自然数。在Java代码中,`isZhishu`方法通过检查数字能否被2到其平方根的整数整除来判断是否为素数。如果存在整除情况,则返回false,表示该数不是素数;反之,如果循环结束没有找到整除情况,则返回true,表示是素数。这个方法比逐个检查所有小于等于n的数更有效率,因为它只需要检查到√n即可。 最后,【程序3】是关于"水仙花数"的搜索。水仙花数是指一个三位数,其各位数字的立方和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。要在100到999的范围内寻找这样的数字,可以遍历这个范围内的每一个数,然后计算其各位数字的立方和,与原数进行比较。如果相等,则打印出该数。 这三个例子涵盖了基本的算法设计思想,如递归、循环和条件判断,同时也体现了优化算法以提高效率的重要性。对于初学者来说,理解和实现这些例子有助于加深对Java编程和算法的理解,进一步提升编程能力。