Как ни странно, это мое первое Java-приложение, я хотел реализовать факториальную функцию с произвольной точностью, я выполнил рекурсивную функцию, но моя итеративная просто выводит «1» и ничего больше .. Мне так поздно, что я могуне знаю почему, я не уверен, где я ошибся, есть ли здесь что-то очевидное?
public static BigInteger ifact(BigInteger n) {
BigInteger ret = new BigInteger("1");
BigInteger i = new BigInteger("1");
for(i = new BigInteger("0"); i.compareTo(n) == 0; i.add(new BigInteger("1"))){
ret.multiply(i);
}
return ret;
}
Если вы не заметили, что он использует пакет BigInteger, то есть странные записи ...
Кроме того, как и в C, вы можете сделать что-то похожее на typedef, чтобы мне не нужно было каждый раз набирать «BigInteger»?
EDIT : я думаю, что хотел установить ret
как n
, это может быть или ... может и не быть.