我在写代码时,不知道怎么实现以下公式
i-1个方块,高度为j,已经搭好的时候,我可以再拿1个方块放在侧边
i-2个方块,高度为j,已经搭好的时候,我可以再拿2个方块放在侧边
此处省略一些内容
i-k个方块,高度为j,已经搭好的时候,我可以再拿k个方块放在侧边
k比高度j小,也就是k<j
我在写代码时,不知道怎么实现以下公式
i-1个方块,高度为j,已经搭好的时候,我可以再拿1个方块放在侧边
i-2个方块,高度为j,已经搭好的时候,我可以再拿2个方块放在侧边
此处省略一些内容
i-k个方块,高度为j,已经搭好的时候,我可以再拿k个方块放在侧边
k比高度j小,也就是k<j
用递归做
int calculateBlocks(int i, int j) {
if (i <= 0 || j <= 0) {
return 0;
}
int totalBlocks = 0;
for (int k = 1; k < j; k++) {
totalBlocks += calculateBlocks(i - k, k);
}
return totalBlocks + 1;
}