当前位置:编程学习 > JAVA >>

java 编写兔子生仔 小东西疑问

比如说:
一只母兔子一个月只能生一只兔子,而一个月后生了一个小兔子 小兔子过两个月才会生兔子。
一个月以后有2只兔子
两个月以后有3只兔子
三个月以后有5只兔子
4个月后呢?
30个月后 有多少兔子
60个月后 有多少兔子?
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

用java 代码实现 --------------------编程问答-------------------- 我朋友说,用java 5行代码就能实现了。  哭中  怎么搞定? --------------------编程问答-------------------- public class Fibonacci {
int fib(int n) {
if (n < 1)
return 1;
return (fib(n - 2) + fib(n - 1));
}

public static void main(String[] args) {
Fibonacci f = new Fibonacci();
Scanner scanner = new Scanner(System.in);
int length =  scanner.nextInt();
for (int i = 0; i < length; i++) {
if (i < 2) {
System.out.print(f.fib(i) + " :");
} else {
System.out.print(f.fib(i) + " :");
}
}
}
}
几个月就在控制台输入几 --------------------编程问答-------------------- 如果要直接打印就:
public class Fibonacci {
static int fib(int months) {
int rabbits = 1;
for (int i = 1; i <= months; i++) {
if (i >= 3) {
rabbits = rabbits + 1;
rabbits += fib(months - i + 1);
}
}
return rabbits;
}

public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int length = scanner.nextInt();
System.out.println(fib(length));
}
} --------------------编程问答--------------------
import java.util.Scanner;
导入 这架包 --------------------编程问答-------------------- 直接找数学算法,可不就五行代码 --------------------编程问答--------------------
引用 3 楼  的回复:
如果要直接打印就:
public class Fibonacci {
static int fib(int months) {
int rabbits = 1;
for (int i = 1; i <= months; i++) {
if (i >= 3) {
rabbits = rabbits + 1;
rabbits += fib(months - i + 1);
}
}
……

--------------------------
大虾 你那个运行有误呀?  好像是一个 死循环 --------------------编程问答-------------------- 3楼的算法很正确哦 --------------------编程问答-------------------- 获取第n月兔子的数量

static int getSum(int n){
return (n == 0 || n == -1) ? 1 : getSum(n - 1) + getSum(n - 2);
}
--------------------编程问答-------------------- 程序逻辑题目
路过,不发表感言 --------------------编程问答-------------------- 要是生的是公兔子呢?   哈哈
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,