网易-Java开发实习生选择题-排列组合

用1*3的瓷砖密铺3*20的地板有几种方式?

答案:1278

解析

f(n)表示用1*3的瓷砖密铺3*n 的地板的方案数。用递推的思维想。想铺好3*n,可以先铺3*(n-1),最后一列竖着铺一块3*1;也可以先铺好f(n-3),最后的三快横着铺。那么f(n) = f(n-1)+f(n-3)。需要确定一下发,f(0),f(1),f(2)的值,容易知道,f(0)=f(1)=f(2)=1。接下来可以令n=20,用递推的方式求出f(20)=1278。

一共可能有2,5,8,11,14,17块砖头竖着放((20-2)%3==0其余数字同理。)

#竖着放代表长度为3的边刚好接触。A6,6代表6!也等于6的阶乘

当有2块竖着放,一共有8(2+(20-2)/3=8)块转,其中6块为竖着放,2块横着。A8,8/(A6,6*A2,2)=28;

当有5块竖着放,一共有10块转,其中5块为竖着放,5块横着。A10,10/(A5,5*A5,5)=252;

当有8块竖着放,一共有12块转,其中8块为竖着放,4块横着。A12,12/(A8,8*A4,4)=495;

当有11块竖着放,一共有14块转,A14,14/(A11,11*A3,3)=364;

当有14块竖着放,一共有16块转,A16,16/(A14,14*A2,2)=120;

当有17块竖着放,一共有18块转,A18,18/(A17,17*A1,1)=18;

当有20块竖着放,结果为1;

以上加总为1278;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值