递归
intf1=1;//一个月大的兔子
intf2=1;//二个月大的兔子
intfn=1;//兔子总数
for(inti=3;i<25;i++){
fn=f1+f2;
f2=f1;
f1=fn;
System.out.println(i+","+fn);
}
❷ java程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
public class Test {//用递归法计算兔子的规律
static long fib(int x){
if(x>2) return (fib(x-1)+fib(x-2));
else return 1;
}
public static void main(String[] args) {
for(int i=1;i<=24;i++){
long n=fib(i);
//算出的是对数.要算总数的法,*2就行
System.out.println("第"+i+"个月有兔子对数为"+n);
}
}
}
❸ java递归不死兔子
public class Test1 {
public static void main(String[] args) {
System.out.println(diGui(19));
}
public static int diGui(int n) {
if (n == 0 || n == 1) {
return 1;
} else {
return diGui(n - 1) + diGui(n - 2);
}
}
}
❹ java用递归编程(兔子问题)
这个是
斐波那契数列
的问题,根据要求编写的
程序
如下:
public
class
Fibonacci
{
static
int
mb_Fibonacci(int
n){
if(n==1)
return
1;
if(n==2)
return
1;
return
mb_Fibonacci(n-1)+mb_Fibonacci(n-2);
}
public
static
void
main(String[]
args)
{
System.out.println(mb_Fibonacci(13));
}
}
运行结果:
233
❺ Java代码编程 经典的兔子问题
这是斐波那契数列的问题
可以用递归,也可以用循环
递归:
public class Demo3 {
// 使用递归方法
private static int getFibo(int i) {
if (i == 1 || i == 2)
return 1;
else
return getFibo(i - 1) + getFibo(i - 2);
}
public static void main(String[] args) {
System.out.println("斐波那契数列的前20项为:");
for (int j = 1; j <= 20; j++) {
System.out.print(getFibo(j) + "\t");
if (j % 5 == 0)
System.out.println();
}
}
}
循环:
public class Demo2 {
// 定义数组方法
public static void main(String[] args) {
int arr[] = new int[20];
arr[0] = arr[1] = 1;
for (int i = 2; i < arr.length; i++) {
arr[i] = arr[i - 1] + arr[i - 2];
}
System.out.println("斐波那契数列的前20项如下所示:");
for (int i = 0; i < arr.length; i++) {
if (i % 5 == 0)
System.out.println();
System.out.print(arr[i] + "\t");
}
}
}
❻ java中兔子数列怎样用递归法做出来
核心就是:fn=fn-1+fn-2
public class Fibonacci
{
public static void main(String[] args)
{
//初始化变量
int n0 = 1, n1 = 1, n2;
System.out.print(n0 + " " + n1 + " ");
//引入for循环依次执行三个表达式,限定i的取值范围为<10
for (int i = 0; i < 10; i++)
{
//下一个数是早先的两个数的和
n2 = n1 + n0;
System.out.print(n2 + " ");
//早先的第一个数成为早先的第二个数
n0 = n1;
//同时当前的数成为早先的数
n1 = n2; // And current number becomes previous
}
System.out.println(); // Terminate the line
}
}
❼ 有一对雌雄兔子,每两个月就繁殖一对雌雄兔子。问n个月共有多少对兔子递归法 java程序
public class Rabit {
/**
* @param args
* 1对兔子每隔两个月又生1对兔子
*/
public static void main(String[] args) {
int months = 16;//月数自己定
test1(months);
}
private static void test1(int months) {
for(int i=1;i<months;i++){
int num = getNumOfEachMonth(i);
System.out.println(num);
}
}
private static int getNumOfEachMonth(int i) {
if(i==1){
return 1;//第一个月一对
}else if(i==2){
return 1;//第二个月一对
}
//第i个月的=(i-1)个月+(i-2)个月的(既上个月和上上个月,这个你可以从规律看出来)
return getNumOfEachMonth(i-1)+getNumOfEachMonth(i-2);
}
}