Исходя из вашего вопроса и предоставленной вами ссылки, я думаю, что 2 n следует заменить на 2n, и если это так, то следующий рекурсивный метод stati c дает желаемый результат:
public static void papercut(int n, double size, double x, double y)
{
if (n == 0) return;
double x2 = x + size, y2 = y + 2*size;
StdDraw.line(x, y, x, y+4*size);
StdDraw.line(x-2*size, y, x+2*size, y);
papercut(n-1, size/2, x2, y2);
}
Вы можете протестировать его с помощью:
public static void main(String[] args)
{
int n = Integer.parseInt(args[0]);
papercut(n, 0.25, 0.5, 0);
}
и увидеть, что он дает точную цифру, подобную той, которую вы указали в своей ссылке (но первый разрез в ссылке горизонтальный, в то время как ваш вопрос спрашивает, что первый разрез должен быть вертикальным).