JAVA算法题解:兔子问题、素数判断与水仙花数
5星 · 超过95%的资源 需积分: 9 17 浏览量
更新于2024-07-30
收藏 285KB DOC 举报
一个三位数,它的每个位上的数字的立方和等于它本身"。例如:153是一个"水仙花数",因为1^3 + 5^3 + 3^3 = 153。
1. 程序分析:可以通过循环遍历100到999之间的所有三位数,然后逐个计算每个数的各位数字的立方和来判断是否为水仙花数。
```java
public class Exp3 {
public static void main(String[] args) {
for (int i = 100; i <= 999; i++) {
if (isNarcissistic(i)) {
System.out.println(i);
}
}
}
public static boolean isNarcissistic(int num) {
int sum = 0, digit;
while (num != 0) {
digit = num % 10;
sum += Math.pow(digit, 3);
num /= 10;
}
return sum == num;
}
}
```
以上程序3中,`isNarcissistic`方法用于检查输入的数字是否为水仙花数,通过取模运算得到个位、十位和百位数字,然后计算它们的立方和,最后比较和原数是否相等。
这些Java编程题目涉及了基础的算法知识和数据结构,包括:
1. **斐波那契数列**:在程序1中,兔子问题的解决方案是通过递归实现斐波那契数列。斐波那契数列的每个数都是前两个数的和,其特点是初始值为1(或0和1,取决于不同的定义),递归公式为F(n) = F(n-1) + F(n-2)。这里展示了两种递归实现方式,一种是直接在主类中,另一种是将方法封装到单独的类中。
2. **素数判断**:程序2展示了如何判断一个数是否为素数。基本思路是从2开始到该数的平方根,如果存在因子则不是素数,否则是素数。这里的`isZhishu`方法实现了这个逻辑,通过循环遍历并检查余数来判断。
3. **水仙花数**:程序3探讨的是如何找出所有的水仙花数。通过遍历100到999,计算每个数的每位数字立方和,如果等于原数,则输出该数。这里通过`isNarcissistic`方法实现了水仙花数的判断逻辑。
这些题目对于初学者来说是非常好的练习,可以帮助他们理解递归、循环以及基本的数学概念在编程中的应用。同时,它们也是对算法思维和代码效率优化的初步训练。通过解决这些问题,程序员可以提升自己的问题解决能力和编程技能。
2022-05-29 上传
2023-11-10 上传
2024-01-12 上传
2023-07-14 上传
2023-09-02 上传
2023-06-01 上传
2023-09-26 上传
jie91814121
- 粉丝: 0
- 资源: 7
最新资源
- 天池大数据比赛:伪造人脸图像检测技术
- ADS1118数据手册中英文版合集
- Laravel 4/5包增强Eloquent模型本地化功能
- UCOSII 2.91版成功移植至STM8L平台
- 蓝色细线风格的PPT鱼骨图设计
- 基于Python的抖音舆情数据可视化分析系统
- C语言双人版游戏设计:别踩白块儿
- 创新色彩搭配的PPT鱼骨图设计展示
- SPICE公共代码库:综合资源管理
- 大气蓝灰配色PPT鱼骨图设计技巧
- 绿色风格四原因分析PPT鱼骨图设计
- 恺撒密码:古老而经典的替换加密技术解析
- C语言超市管理系统课程设计详细解析
- 深入分析:黑色因素的PPT鱼骨图应用
- 创新彩色圆点PPT鱼骨图制作与分析
- C语言课程设计:吃逗游戏源码分享