Вопрос про вывод чисел Каталана. Код написан для решения вот этой задачи Правильная скобочная последовательность
там же есть и мат часть. Работает неверно, так как при вводе числа 7 и более выдаёт совершенно не ожидаемый результат. Вот мой код на Java написан, как по мне верно, не могу понять в чём подвох.
public class First_task {
public static void main(String[] args) {
System.out.println("Enter the number of brackets:");
Scanner in = new Scanner(System.in);
int count_brackets = in.nextInt();
System.out.println(bracket_sequence(count_brackets));
}
private static long bracket_sequence(int count_brackets) {
return fact(2*count_brackets)/(fact(count_brackets)*fact(count_brackets+1));
}
private static int fact(int num) {
return (num == 1) ? 1 : num * fact(num - 1);
}
Возможно, проблема в типе данных. При вводе 7 в формуле уже происходят огромные вычисления (в числителе (2*7)! ). Попробуй изменить тип int на long.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей