public static String factorial(int n) {
    BigInteger rezult = new BigInteger(String.valueOf(n*Integer.parseInt(factorial(n-1))));
    return rezult.toString();
как делать через цикл понятно, но не получается через рекурсию!!! постоянно стекоферфлоу :((( Вообще не пойму - мы можем передавать в BigInteger только строку? тогда нам надо вначале valueOf - всего того что мі передаем в БигИнт - наше n*factorial(n-1).... но функция факториала нам тоже возвращает строку, поэтому перед умножением на n нам надо его распарсить в инт. я правильно понимаю логику??? проверки все то понятно... я допишу, мне интересно именно разобраться с логикой и синтаксиса этого BigInteger