Перед каждым оператором возврата в функции добавьте два дополнительных оператора. Что-то вроде:
я построил эту программу для изготовления разных лестничных клеток. По сути, проблема заключается в следующем: учитывая целое число N, сколько разных способов вы можете построить лестницу. N гарантированно будет больше 3 и меньше 200. Любой предыдущий шаг не может быть больше, чем его следующий шаг, в противном случае он нарушает цель лестницы.
Таким образом, учитывая N = 3, вы можете построить одну лестницу: 2 шага, а затем 1 шаг после этого
Учитывая N = 4, вы можете построить одну лестницу: 3 шага, а затем 1 шаг после этого
Учитывая N = 5 Вы можете построить две лестницы: 3 шага, а затем 2 шага ИЛИ 4 шага, а затем 1 шаг.
Мой метод ниже, и он работает, за исключением того, что его время выполнения слишком медленное. Так что я думал о попытке сделать памятку для метода, но, честно говоря, я не до конца понимаю, как это реализовать. Если бы я мог получить помощь, как это сделать, это было бы здорово.
public static void main(String [] args)
{
System.out.println(answer(200));
}
public static int answer(int n) {
return bricks(1,n) -1;
}
public static int bricks(int height, int bricksLeft)
{
if(bricksLeft == 0)
{
return 1;
}
else if(bricksLeft < height)
{
return 0;
}
else
{
return bricks(height +1, bricksLeft - height) + bricks(height +1, bricksLeft);
}
}