zoukankan      html  css  js  c++  java
  • 基础 递归练习

    1、有一个农场在第一年的时候买了一头刚出生牛,这头牛在第四年的时候就能生一头小牛,以后每年这头牛就会生一头小牛。

    这些小牛成长到第四牛又会生小牛,以后每年同样会生一头牛,假设牛不死,如此反复。请问50年后,这个农场会有多少头牛?

    首先定义最终终止条件f(4)=1;

    然后定义递归公式中f(n)=f(n-1)+f(n-3)。

    public class Test {
        public static int f(int x){
            if(x>0&&x < 4){
                return 1;
            }else {
                return f(x-1)+f(x-3);
            }
        }
        public static void main(String[] args) {
                System.out.println(f(50));
        }
    
    }

    结果:83316385

    2、有个莲花池里起初有一只莲花,每过一天莲花的数量就会翻一倍。假设莲花永远不凋谢,30天的时候莲花池全部长满了莲花,

    请问第23天的莲花占莲花池的几分之几?

    首先定义最终终止条件f(30)=1;

    然后定义递归公式中f(n)=f(n+1)*0.5。

     1 public class Test {
     2     public static double f(double x){
     3         if(x==30){
     4             return 1;
     5         }else{
     6             return f(x+1)*0.5;
     7         }
     8     }
     9     public static void main(String[] args) {
    10             System.out.println(f(23));
    11     }
    12 
    13 }

    结果:0.0078125

  • 相关阅读:
    c++之单链表
    c++之变量的生存期及可见性
    c++之结构体-结构数组排序
    c++之递归函数
    c++之指针练习
    C++之面向对象之构造函数和拷贝构造方法,以及析构方法
    C++之命名空间
    C++之面向对象之对象的使用
    Hadoop RPC实现
    BP(商业计划书写)
  • 原文地址:https://www.cnblogs.com/YangGC/p/6160968.html
Copyright © 2011-2022 走看看