Java编程练习:面试题与技巧解析
需积分: 7 76 浏览量
更新于2024-09-09
收藏 35KB TXT 举报
"Java常见面试题"
在Java编程面试中,常常会遇到各种类型的题目,这些题目旨在测试面试者的基础知识、逻辑思维以及问题解决能力。以下是对给定文件中四道典型Java编程题目的详细解析:
1. 斐波那契数列
此题涉及递归与循环的概念。斐波那契数列是每个数字是前两个数字的和,通常以0和1开始。题目中给出的代码使用循环实现了斐波那契数列的前24项。`f1` 和 `f2` 分别存储当前数列的前两个数,通过循环计算出下一项并输出。
```java
int f1 = 1, f2 = 1, f; // 初始化斐波那契数列的前两个数
for (int i = 3; i <= M; i++) { // 从第三项开始计算
f = f2; // 将f2的值赋给f
f2 = f1 + f2; // 计算新的f2(f1和f2的和)
f1 = f; // 更新f1为旧的f2
System.out.println(i + "µӶ:" + f2); // 输出当前项
}
```
2. 打印素数
这道题是检查101到200之间的所有素数。素数是大于1且只有1和自身两个正因数的自然数。代码通过两层循环实现:外层循环遍历101到200,内层循环用于判断是否为素数。如果一个数能被它小于等于其平方根的任何数整除,则该数不是素数。
```java
int count = 0; // 计数器,记录素数个数
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);
}
}
System.out.println(": " + count); // 输出素数总数
```
3. “水仙花数”
水仙花数是指一个三位数,其各位数字立方和等于该数本身。题目要求找出101到999之间的所有水仙花数。
```java
int b1, b2, b3; // 分别存储百位、十位和个位数字
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 + " ѫ");
}
}
```
4. 因数分解
这道题要求输入一个正整数n,并将其所有因数打印出来。题目分为三个步骤:(1) 找到n的所有因数;(2) 如果n等于其因数k,只打印一次k;(3) 如果n不等于k,打印k和k+1。
```java
Scanner s = new Scanner(System.in);
System.out.print("请输入一个正整数:");
int n = s.nextInt();
Set<Integer> factors = new HashSet<>(); // 存储因数,避免重复
for (int i = 1; i <= Math.sqrt(n); i++) { // 检查1到n的平方根
if (n % i == 0) {
factors.add(i); // 添加因数
if (n / i != i) { // 如果n/i不是i,添加n/i作为另一个因数
factors.add(n / i);
}
}
}
System.out.println(n + " 的因数有:");
for (int factor : factors) {
System.out.print(factor + " ");
}
```
以上四道题目覆盖了Java基础中的循环、条件判断、数学运算、数组操作、集合类以及算法应用等知识点,对于理解和提升Java编程能力非常有帮助。
102 浏览量
113 浏览量
162 浏览量
2009-11-03 上传
462 浏览量
247 浏览量

youzhi1225
- 粉丝: 0
最新资源
- Rusty-iconz: Rust编写的Xcode图标生成CLI
- flyspell-lazy:提升Emacs flyspell性能的新方法
- 网格布局实例讲解与应用分析
- 使用amcharts.js创建多图表统计Demo
- SublimeLinter-pep8插件解析:Python代码质量检查
- Aristotle: 构建个性化新闻采集系统的Python工具
- Inmanta参数配置模块(param)的介绍与应用
- 掌握Android SimpleAdapter在GridView和ListView中的应用
- 深入了解mysql innodb表空间分析工具py_innodb_page_info
- 自定义checkboxpreference样式教程
- 轻松获取宽带连接密码的小工具
- Wamp5 1.7.4:PHP、MySQL与Apache集成环境安装
- HyperVM虚拟化管理器功能与OpenVZ及Xen集成
- Android与Struts2结合实现图片文件上传教程
- Node.JS中的CrudStudents:CRUD操作实践指南
- HTML5与CSS3离线CHM文档资源包