• 1递归


    package com.test;

    import java.util.Scanner;

    public class test111 {

    /**
    * @param args
    * 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

    1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
    月份: 1 2 3 4 5 6 7 8 9 10
    兔子数: 1 1 2 3 5 8 8+1+1+1+2=13 13+1+1+1+2+3=21 21+1+1+1+2+3+5=34 34+1+1+1+2+3+5+8=55
    第一个月:
    1 2 3 4 5 6 7
    1 1 1 1 1 1 1

    1 2 3 4 5 6 7
    1 1 1 1 1 1 1

    1 2 3 4 5 6 7
    1 1 2 2 2 2 2

    1 2 3 4 5 6 7
    1 1 2 3 3 3 3

    1 2 3 4 5 6 7
    1 1 2 3 5(5=3+2基础是3,加上2天前新出生的兔子2=>5) 5 5

    1 2 3 4 5 6 7
    1 1 2 3 5 8 13

    所以
    兔子的规律为数列1,1,2,3,5,8,13,21,34,55....

    */
    public static void main(String[] args) {
    // TODO Auto-generated method stub

    int i=0,x = 0;
    for(int y=0;y<=1;y++){
    Scanner sc = new Scanner(System.in);
    x = sc.nextInt();
    for(i=1;i<=x;i++){
    System.out.println(fn(i));
    }
    if(x!=0){
    y=0;
    // continue;
    }else{
    // System.exit(y);
    }
    }

    }

    private static int fn(int x){
    if(x==1||x==2){
    return 1;
    }else{
    return fn(x-1)+fn(x-2);
    }
    // Integer a = new Integer();
    //a.MAX_VALUE 2147483647 min:-2147483648
    }
    /**
    * for语句的格式:
    for(<初始化>; <条件表达式>; <增量>) 语句;
    执行顺序如下:
    初始化->条件表达式->语句->增量->条件表示式->语句-增量->...->条件表达式。
    在执行的时候,初始化语句只执行一次,后续按照条件表达式进行判断,如果符合条件,则执行[语句],然后执行增量。再根据条件表示式进行判断,重复上面过程。
    */
    }

  • 相关阅读:
    FocusScope学习三: 对FocusScope 的探究与总结
    FocusScope学习二: 很好的理解FocusScope的工作原理
    不同XML之间节点的拷贝
    计算几何DotVector
    计算几何Graham法凸包
    计算几何UVa10652
    线性筛三合一,强大O(n)
    计算几何AngRadVector
    线性筛euler,强大O(n)
    矩阵bzoj1898
  • 原文地址:https://www.cnblogs.com/signoffrozen/p/7117344.html
Copyright © 2020-2023  润新知