java基础算法题,兔子问题和水仙花束

BSO 2020-09-15 11:13:20 java常见问答 6738

大家都知道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工具网。

推荐阅读:

java学习书籍推荐,基础篇

java基础知识,类的构成与循环语句

javaweb发送邮件的方式有哪几种?邮件发送基础是什么?