大家都知道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
{
f = f1 + f2;
f1 = f2;
f2 = f;
System.out.println("第" + i + "个月的兔子对数:" + f2);
}
/*
for(int i =1 ; 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
{
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工具网。
推荐阅读: