JAVA编程题集:含菲波拉契数列、素数判断、水仙花数
需积分: 9 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初学者或准备面试的人来说,这些都是必备的知识点。
2023-07-07 上传
1616 浏览量
2022-09-23 上传
2013-01-14 上传
2018-05-19 上传
2022-09-23 上传
2022-09-20 上传
zsliang0525
- 粉丝: 0
- 资源: 7
最新资源
- Anime Episodes Manager-开源
- Cartly-crx插件
- MiniTools-USB下载工具-20240321
- crz:https的功能性程式库
- shouyinji.zip_网络编程_Visual_Basic_
- puid:根据时间,机器和过程生成唯一的ID,以在分布式环境中使用
- pyjwt:Python中的JSON Web令牌实现
- CarChecker:Blazor WebAssembly示例应用程序,包括身份验证,浏览器内数据存储,脱机支持,本地化,响应式布局等。有关视频演练,请参见此链接
- synthesizer:适用于Python的虚拟模拟合成器
- Procedural-Planets
- 实践5:建立和发展个人资料清单,形象清单
- EasyLocationPicker:EasyLocationPicker是一个库,可让您轻松在地图上选择用户位置,它具有地理编码器并集成了自动完成功能
- SGcourseKPnotes.rar_Symbian_Visual_C++_
- vue-modals:Vue js的简单直观模态
- 便捷二维码-crx插件
- 希尔伯特黄变换c++源代码