注册 登录
编程论坛 JAVA论坛

java经典问题——兔子

敏敏吼 发布于 2015-09-06 21:55, 2831 次点击
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
 希望能够详细分析一下您写的代码,我刚刚学习,还有很多不懂,谢谢哒。
11 回复
#2
敏敏吼2015-09-06 22:22
没有人么?
气死宝宝了
#3
林月儿2015-09-06 22:27
斐波那契数列。。。。
#4
hjx11202015-09-06 22:40
一个C语言版本的斐波契数列,java没学过,转换成java因该不难吧
#include <stdio.h>
#define  MONTH 13
int main(){
    int i;
    int fib[MONTH]={1,1};
   
    for(i = 2; i < MONTH; i++)
        fib[i] = fib[i-1] + fib[i-2];
    for(i = 0; i < MONTH; i++)
        printf("%d月兔子总数:%d\n",i,fib[i]);
        
    return 0;
}
#5
hjx11202015-09-06 22:53
回复 3楼 林月儿
林师姐帮忙转换成java语言
#6
林月儿2015-09-07 07:14
回复 5楼 hjx1120
程序代码:
import javax.swing.JOptionPane;

public class Fibonacci
{
    public static void main(String[] args)
    {
        String res="";
        try
        {
            int month=Integer.parseInt(JOptionPane.showInputDialog(null,"请输入月份上限(>2)","请输入",JOptionPane.INFORMATION_MESSAGE));
            int[] fib=new int[month];
            fib[0]=fib[1]=1;
            for(int i = 2; i < month; i++)
                fib[i] = fib[i-1] + fib[i-2];
            for(int i = 0; i < month; i++)
                res+=(i+1)+"月兔子总数:"+fib[i]+"\n";
            JOptionPane.showMessageDialog(null, res, "计算结果",JOptionPane.PLAIN_MESSAGE);
        }
        catch(Exception e)
        {
            JOptionPane.showMessageDialog(null,e.getMessage(),"错误",JOptionPane.ERROR_MESSAGE);
        }
        
            
    }
}

真不知道版主怎么当的。。。。。。
#7
hjx11202015-09-07 09:01
回复 6楼 林月儿
版主是地上捡来的
#8
林月儿2015-09-07 09:57
回复 7楼 hjx1120
再捡一个给我看看
#9
林月儿2015-09-07 11:37
看了资料LZ还是个多面手。。。。
#10
MrZhou你好2015-09-07 18:53
java新手,昨天刚学的递归,老师给举的例子斐波那契数列,希望对你有点用
//Fibonacci数列: 1, 1, 2, 3, 5, 8, …
public class Code4
{
    public static void main(String[] args)
    {
        int re=f(5);
        System.out.println(re);  
    }
    public static int f(int a)
    {
        if(a==1||a==2)
            return 1;
        return f(a-1)+f(a-2);
       if(a==1)
           return 1;
      return a+sum(a-1);
    }
#11
林月儿2015-09-07 19:22
回复 11楼 MrZhou你好
public static int f(int a)
    {
        return a>2?f(a-1)+f(a-2):1;
    }
1