递归算法题(兔子)

问题:

古典问题:3个月起每个月都生一对兔子,
* 小兔子长到第三个月后每个月又生一对兔子,
* 假如兔子都不死,问每个月的兔子总数为多少?

代码:

import java.util.Scanner;

public class Else {
  public static void main(String[] args) {
    int n=new Scanner(System.in).nextInt();
    int totle = 2;

    System.out.println(digui(n)*2);
  }

  private static int digui(int n) {
    int totle = 1;
    if (n==1||n==2) {
      totle = 1;
    }
    if (n>2) {
      totle = digui(n-1)+digui(n-2);
    }
    return totle;
  }
}

时间: 2024-10-28 15:21:53

递归算法题(兔子)的相关文章

简单递归算法题

#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2017/4/28 16:41 # @Author : MnCu # @Site : # @File : fbnq.py # @Software: PyCharm # 一对兔子从出生到可繁殖需两个月,然后每月都能繁殖一对兔子,问n月后共有多少兔子 def fbnc_func(n): ''' 1 出口: 当月份小于等于2月时,则返回1 2 f(n)与f(n-1)的关系: 当月的兔子数 =

两道递归算法题

第一题: 给出{1, 2, 3,-, n}的入栈顺序, 输出所有可能的出栈顺序 #include "stdafx.h" #include <stack> #include <queue> #include <iostream> #include <cstdio> #include <cstdlib> using namespace std; int n = 0; typedef stack<int> Stack;

递归算法题

1.第一个人10岁,第二个人比第一个人大2岁,依次递增,请用递归方式算出第8个人多大? public static void main(String[] args){ System.out.println(computeAge(8)); } public static int computeAge(int n){ if(n==1) return 10; return computeAge(n-1)+2; }

ios 算法题

1兔子算法题 兔子可以跳一步2步或者3步,问跳到100有多少种跳法? // 兔子可以跳一步2步或者3步 // 问跳到100有几种跳法 /* 分析1 两个变量,X*2+Y*3=100. X最大为50,X最小为2 Y最大为32.最小为0 分析2 某个情景分析:假设X=35,Y为10时, 虽然知道了数量,但是兔子的35小步,和10大步的顺序是怎样的? 应为组合-> 45个节点中,选择10个放三步的.那就是简单的C(45 10).变成阶乘,就解得出来. */ double temp=0.0f; for

面试中遇到递归算法

前几天在博客园看到有人面试时,遇到递归算法题,一时手痒就解了一个.顺便网上又找来几个,也实现了.给大家分享一下,开阔一下思路,没准你明天面试就能用上. 1.编写一个方法用于验证指定的字符串是否为反转字符,返回true和false.请用递归算法实现.(反转字符串样式为"abcdedcba") 2.一列数的规则如下: 1.1.2.3.5.8.13.21.34...... 求第30个是多少 3.一列数的规则如下: 1.12.123.1234.12345.123456......,求第n个数的

【Java 面试】面试

一. 笔试题之Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法,虚拟机方面的语法,其他.有些题来自网上搜集整理,有些题来自传智播客学员面试后的反馈,说真的,少数一些网上的面试题,我真怀疑其是否还有存在价值! 1.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致. 2.Java有没有goto?

算法入门———递归

递归:在定义自身的过程中,直接或间接调用自身的一种算法 最简单的递归示例: 阶乘 求n! 分析: n!等价于 n(n-1)! 这是一个典型的递归算法题 public int recursion(int n){ if(n==0){ return 1; }else{ return n*recursion(n-1); } } /*   题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月 后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?*/ 分析: 其实

Java面试宝典2013版(超长版)

一. Java基础部分......................................................................................................2 1.一个".java"源文件里能否够包含多个类(不是内部类)?有什么限制?.....2 2.Java有没有goto?........................................................................

java面试第四弹(算法和编程)思路

1.编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔. 创建两个FileManager分别是a.txt和b.txt 参数需要创建一个char数组来进行回车符分割和空格分割 FileManager a = new FileManager("a.txt",new char[]{'\n'}); FileManager b = new FileManager("b.txt