JAVA编程题集:含菲波拉契数列、素数判断、水仙花数
需积分: 9 21 浏览量
更新于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 上传
2024-11-06 上传
zsliang0525
- 粉丝: 0
- 资源: 7
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫