Member 13228896 Ответов: 1

Каталонское число с кодом java


это мой код для возврата каталонского числа, он дает мне правильный ответ до тех пор, пока num=6 и для num>6 ответы возвращаются неправильно, пожалуйста, я не могу понять, почему.

Что я уже пробовал:

return (isFactorial(2 * num)) /((isFactorial(num + 1)) * (isFactorial(num)));

Patrice T

что такое " isFactorial ()"?

1 Ответов

Рейтинг:
1

CPallini

Вы должны использовать хорошую факторную функцию (isFactorial название выглядит подозрительно) для того, чтобы применить такую формулу.
Пожалуйста, обратите внимание, что на самом Страница Википедии каталонских чисел[^], вы можете найти лучшие формулы, используя рекуррентные соотношения, чтобы вычислить их. Попробуйте, например

class Catalan
{
  static int catalan(int n)
  {
    int c = 1;
    for (int i = 0; i <n; ++i)
    {
      c = 2 * c * (2 *i + 1) / ( i + 2);
    }
    return c;
  }
  public static void main(String arg[])
  {
  for (int n=0; n<10; ++n)
    System.out.printf("catalan(%d) = %d\n", n, catalan(n));
  }
}