兔子产子——斐波那契(Fibonacci)数列
2011-11-20 22:14
357 查看
兔子产子——斐波那契(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);
}
}
}
相关文章推荐
- 问题 N: C/C++经典程序训练2---斐波那契(Fibonacci)数列
- 斐波那契(Fibonacci)数列的求法
- 斐波那契数列求兔子总数
- mips汇编语言实现Fibonacci(斐波那契)数列
- C++初学之 2.递归算法典型案例: 斐波那契(Fibonacci)兔子问题(第三项为前两项的累加问题)
- 斐波那契数列(Fibonacci)(递归,非递归)(动态规划,自顶向下,自底向上)
- 三种方法求解Fibonacci(斐波那契)数列
- 编程之美 2.9 斐波那契(Fibonacci)数列
- 输出斐波那契(Fibonacci)数列的前二十项
- 斐波那契(Fibonacci)数列的递归和非递归实现
- Problem H: C/C++经典程序训练2---斐波那契(Fibonacci)数列
- 斐波那契(Fibonacci)数列
- 斐波那契(Fibonacci)数列的计算效率
- 求斐波那契(Fibonacci)数列通项的七种实现方法
- 求斐波那契(Fibonacci)数列通项的七种实现方法
- Problem N: C/C++经典程序训练2---斐波那契(Fibonacci)数列
- 阿里2016前端开发工程师笔试 - 关于斐波那契(fibonacci)数列的JS写法解答
- 【C语言】求斐波那契(Fibonacci)数列通项(递归法、非递归法)
- 斐波那契数列(fibonacci)两种python实现的效率对比
- 斐波那契数列-有一对兔子