solution(2)
实际输出是 3 而不是 7。,代码,更具描述性且详尽的尝试:,调用覆盖2xn网格的方式数量为x_n,覆盖2xn+1网格的方式数量为y_n,覆盖2xn+2网格的方式数量为z_n。,基本案例:,x_0 = 1,y_0 = 1,z_0 = 2x_1 = 2,y_1 = 3,z_1 = 5,归纳步骤,n >=2:,考虑 2xn + 2 网格的最左边的单元格,如果它被 1×1 瓦片覆盖,那么剩下的就是 2xn + 1 网格,否则,它被 1×2 瓦片覆盖,剩下的就是 2xn 网格。因此,,z_n = x_n + y_n,考虑 2xn + 1 网格的最左边的单元格,如果它被 1×1 瓦片覆盖,剩余的将是 2xn 网格,否则,它被 1×2 瓦片覆盖,剩余的将是 2x(n- 1) + 1 格。因此,,y_n = x_n + y_(n-1),考虑 2xn 网格的左上角,如果它被 1×1 的图块覆盖,则剩余的将是 2x(n-1) + 1 个网格,如果它被 1×2 的图块覆盖,则剩余的将是一个2x(n-2) + 2 网格,否则,它被 2×1 瓦片覆盖,剩余的将是 2x(n-1) 网格。因此:,x_n = y_(n-1) + z_(n-2) + x_(n-1),将 z_n 替换为 x_n + y_n,我们有:,x_n = x_(n-1) + x_(n-2) + y_(n-1) + y_(n-2)
y_n = x_n + y_(n-1),现在,只需迭代计算每个值:,您可以不使用切片来完成此操作,但这更容易理解。 游乐场演示,