Java编程练习:面试题与技巧解析
需积分: 7 3 浏览量
更新于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编程能力非常有帮助。
2023-04-14 上传
141 浏览量
1351 浏览量
2009-11-03 上传
2007-11-17 上传
163 浏览量
youzhi1225
- 粉丝: 0
- 资源: 5
最新资源
- NIST REFPROP问题反馈与解决方案存储库
- 掌握LeetCode习题的系统开源答案
- ctop:实现汉字按首字母拼音分类排序的PHP工具
- 微信小程序课程学习——投资融资类产品说明
- Matlab犯罪模拟器开发:探索《当蛮力失败》犯罪惩罚模型
- Java网上招聘系统实战项目源码及部署教程
- OneSky APIPHP5库:PHP5.1及以上版本的API集成
- 实时监控MySQL导入进度的bash脚本技巧
- 使用MATLAB开发交流电压脉冲生成控制系统
- ESP32安全OTA更新:原生API与WebSocket加密传输
- Sonic-Sharp: 基于《刺猬索尼克》的开源C#游戏引擎
- Java文章发布系统源码及部署教程
- CQUPT Python课程代码资源完整分享
- 易语言实现获取目录尺寸的Scripting.FileSystemObject对象方法
- Excel宾果卡生成器:自定义和打印多张卡片
- 使用HALCON实现图像二维码自动读取与解码