大家都知道java的知识点非常的多又很复杂,它的题目也涉及到方方面面,今天就来为大家展示java基础算法题,也就是兔子问题和水仙花束,一起来看看吧。
一、TestRabbit.java
题目是古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
先进行分析: 兔子的规律为数列1,1,2,3,5,8,13,21....代码展示如下:
package cn.edu.hit; /** * 兔子问题 * 斐波那契数列求值 * @author tonylp *题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子, *小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? *1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... */ public class rabbit { public static final int MONTH = 15; public static void main(String[] args) { // TODO Auto-generated method stub long f1 = 1 L, f2 = 1 L; long f; for (int i = 3; i < MONTH; i++) { f = f1 + f2; f1 = f2; f2 = f; System.out.println("第" + i + "个月的兔子对数:" + f2); } /* for(int i =1 ; i<MONTH; i++){ System.out.println("第"+i+"个月的兔子对数:"+fib(i)); } */ } //递归方法实现 public static int fib(int month) { if (month == 1 || month == 2) { return 1; } else { return fib(month - 1) + fib(month - 2); } } }
二、FindDaffodilNumber.java
题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,它的各位数字立方和等于该数本身。比如说,
153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
同样先进行分析,利用for循环控制100-999个数,每个数分解出个位,十位,百位。代码展示如下:
package cn.edu.hit; /** * 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。 * 例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 * 1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 * * @author tonylp */ public class daffodils { public static void main(String[] args) { int a, b, c; int data; for (int i = 100; i < 999; i++) { a = i / 100; b = (i - 100 * a) / 10; c = i - 100 * a - 10 * b; data = a * a * a + b * b * b + c * c * c; if (data == i) { System.out.println(i); } } } }
以上就是关于java基础算法题,兔子问题和水仙花束的主要内容了。如果你对java知识感兴趣,想要了解更多java基础,敬请关注奇Q工具网。
推荐阅读: