JAVA编程题集:含菲波拉契数列、素数判断、水仙花数

需积分: 9 1 下载量 7 浏览量 更新于2024-07-24 收藏 208KB DOC 举报
"包含Java编程题目的集合,包括菲波拉契数列、素数判断以及水仙花数的实现" 这些Java程序展示了基础算法和逻辑思维在编程中的应用。让我们逐一解析每个程序的关键知识点。 【程序1】 这是一个解决菲波拉契数列问题的程序。菲波拉契数列是一个典型的递归问题,定义为:F(1) = 1, F(2) = 1, 且 F(n) = F(n-1) + F(n-2) 对于 n > 2。程序通过循环结构实现了菲波拉契数列,避免了递归带来的性能问题。关键代码是: ```java int f1 = 1, f2 = 1, f; for (int i = 3; i <= M; i++) { f = f2; f2 = f1 + f2; f1 = f; System.out.println("第" + i + "个月的兔子对数:" + f2); } ``` 这里,`f1` 和 `f2` 分别表示前两个数,`f` 用于存储当前数列项,然后更新 `f1` 和 `f2` 的值,从而计算出下一个数列项。 【程序2】 这个程序用于找出101到200之间的素数。素数是只有1和它本身两个正因数的自然数。关键在于使用平方根优化判断,因为一个数如果不是素数,必定存在小于或等于其平方根的因子。代码如下: ```java for (int i = 101; i < 200; i += 2) { boolean b = false; for (int j = 2; j <= Math.sqrt(i); j++) { if (i % j == 0) { b = false; break; } else { b = true; } } if (b == true) { count++; System.out.println(i); } } ``` 通过遍历2到数的平方根,检查是否有因子,若有则说明不是素数,若没有则输出素数。程序还通过跳过偶数来减少检查次数,因为2是唯一的偶数素数。 【程序3】 该程序寻找“水仙花数”,即各位数字立方和等于数本身的三位数。水仙花数的检验方法是将三位数拆分为百位、十位和个位,然后计算立方和。代码如下: ```java for (int m = 101; m < 1000; m++) { b3 = m / 100; b2 = m % 100 / 10; b1 = m % 10; if ((b3 * b3 * b3 + b2 * b2 * b2 + b1 * b1 * b1) == m) { System.out.println(m + "是一个水仙花数"); } } ``` 通过取模和除法操作,可以分别得到百位、十位和个位的数字,然后计算立方和进行比较,找出符合条件的水仙花数。 以上三个程序体现了Java编程的基础,如循环结构、条件判断、算术运算、变量的使用等,同时也展示了算法在解决特定问题时的重要性。对于Java初学者或准备面试的人来说,这些都是必备的知识点。