• 剑指offer 10.递归和循环 矩形覆盖


    题目描述

    我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
     
    当n=0时 ,target=0;
     
    当n=1时 ,target=1;
     
    当n=2时 ,target=2;
     
    当n=3时 ,target=3;
     
    当n=4时, targe=5;
     
    当n=5时, targe=8;
     
    此时不难得出规律:这又是个斐波那契数列。。。。。。。。
     
    老样子,直接上代码:
     
     
     

    public int RectCover(int target) {
    try {
    if (target==0) {
    return 0;
    }
    else if (target==1) {
    return 1;
    }
    else if (target==2) {
    return 2;
    }else if (target==3) {
    return 3;
    }else if (target>3) {
    return RectCover(target-1)+RectCover(target-2);
    } else if (target <0) {
    throw new Exception("不是整数");
    }
    } catch (Exception e) {
    // TODO: handle exception
    return -1;
    }
    return -1;
    }

    唉,后悔过去的二十年没有好好学数学。。。。。。
     
    唉,把希望寄予下一代吧。。。。。。。。。。。。。
     
    如果有小孩,一定得从小送他去奥数班才行。。。。。。。。
     
  • 相关阅读:
    地铁开发进度1
    人月神话阅读笔记二
    学习进度五
    人月神话阅读笔记一
    WebView的用法:
    图框联动
    阅读笔记《人月神话》一
    5
    4
    3
  • 原文地址:https://www.cnblogs.com/Transkai/p/10760120.html
Copyright © 2020-2023  润新知