兔子产子——斐波那契(Fibonacci)数列

 

兔子产子——斐波那契(Fibonacci)数列

描述

从前有一对长寿兔子,它们每一个月生一对兔子,新生的小兔子两个月就长大了,在第二个月的月底开始生它们的下一代小兔子,这样一代一代生下去,求解兔子增长数量的数列。

 

输入

第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a(1 <= a <= 20)

 

输出

输出有1行,每行输出对应一个输入。输出应是一个正整数序列,整数之间用空格分开。

 

样例输入

3

3

2

1

 

样例输出

1 1 2

1 1

1

 

 

参加代码(Java版):

import java.util.*;

/**

 *   

 *      本程序功能:解决“兔子产子”这一问题,

 * 实际该问题是一个斐波那契(Fibonacci)数列问题,

 * 因此,可按斐波那契数列的规则来进行编写算法。

 *  @author wu-lun

 *

 */

class FibonacciTest {

    public static void main(String[] args) {

       new Fibonacci();

    }

}

 

class Fibonacci{

    Scanner input = new Scanner(System.in),

           input2 = new Scanner(System.in);

    public Fibonacci(){

       System.out.println("请输入组数 n = ");

       int n = input.nextInt();

      

       int a = 0;

       System.out.println("请输入各组的数据个数:");

       for(int i=0; i<n; i++){

           a = input2.nextInt();

           PrintFib(a);

       }

    }

    /**

     *

     * @param 打印出每个月份的兔子对数

     */

    public void PrintFib(int a){

       for(int j=1; j<=a; j++){

           System.out.print(Fib(j) + " ");

       }

       System.out.println();

    }

   

    /**

     * 使用递归的方法,获取各月份的兔子对数。

     * @param 组数

     * @return 各月份的兔子对数

     */

    public int Fib(int n){

       if(n == 1 || n == 2 ){  

           return 1;

       } else {

           //System.out.print(Fib(n-1)+ Fib(n-2)+" ");

           return Fib(n-1)+ Fib(n-2);

       }

    }

}

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值