Java编程经典实战:斐波那契数列、素数判定与水仙花数

需积分: 9 4 下载量 125 浏览量 更新于2024-07-28 收藏 107KB DOC 举报
在本文档中,我们讨论了三个关于Java编程的经典习题,涵盖了递归算法、素数判断以及数学问题的编程实现。 1. **斐波那契数列问题** - 题目1涉及到了经典的递归问题,即著名的斐波那契数列。在`lianxi01`类的`main`方法中,通过for循环模拟了一对兔子繁殖的过程,从第3个月开始,每个月兔子对数按照斐波那契数列的方式增长。斐波那契数列是一个自相似序列,前两项通常为1,后续每一项都是前两项之和。代码中的`f1`和`f2`分别代表当前月和上个月的兔子对数,`M`设为24个月,程序逐月计算并打印出兔子的总数,展示了递归算法的实际应用。 2. **素数判断** - 在`lianxi02`类中,通过双重循环实现了判断101至200之间的素数。首先,`count`变量用于统计素数的数量。外部循环遍历101到199(跳过偶数),内部循环检查每个数`i`是否能被2到其平方根之间的整数整除。如果找到因子,则`b`标志设为`false`并跳出循环;否则`b`保持为`true`。当外部循环结束,`b`为`true`的`i`值即为素数,计数器`count`加一,并输出素数。这里体现了基本的数学逻辑和条件判断在编程中的运用。 3. **水仙花数** - 最后一个程序`lianxi03`聚焦于数学趣味问题,即寻找"水仙花数"。水仙花数定义为一个三位数,其各位数字的立方和等于其本身。通过`for`循环遍历101至999范围内的每个三位数,将每一位数字分别提取出来(`b1`, `b2`, `b3`),计算它们的立方和并与原数`m`比较。当满足`(b3 * b3 * b3 + b2 * b2 * b2 + b1 * b1 * b1) == m`的条件时,说明找到了一个水仙花数,将其打印出来,展示了数值计算和条件语句在解决特定数学问题时的编程技巧。 这三个Java程序不仅锻炼了编程基础,还涉及到了递归、数学算法和条件控制等核心概念,是学习Java编程过程中的良好练习案例。通过解决这些问题,程序员可以加深对数据结构、循环、函数和逻辑思维的理解。