#java #package #factorial
#java #пакет #факториал
Вопрос:
Создание двух отдельных пакетов mathematics и Application. С классом под названием MathHelper и приложением в любом из них. Мне нужно добавить статический метод к MathHelper.java класс с именем factorial (int), который получает одно целое число и возвращает факториал переданного числа. В вызываемое приложение добавляется основной метод, который вызывает Mathhelper.factorial. Это код, который у меня есть на данный момент…
public class Application {
public static void main(String[]args) {
System.out.println(MathHelper.doubleInt((9)));
}
}
public class MathHelper {
public static void main(String[]args) {
}
public static int fact(int factNum) {
if (factNum==1) {
return 1;
}
else {
return factNum (fact(factNum - 1));
}
}
}
Комментарии:
1. Я думаю, что это правильная общая идея, но
должна быть
*
— факториал означает умножение целого ряда чисел вместе, а не их сложение.
Ответ №1:
Вы можете вычислить факториал с помощью:
циклы:
public long fact(int factNum) {
long fact = 1;
for (int iteration = 2; iteration <= factNum; iteration ) {
fact = fact * iteration;
}
return fact;
}
Стримы:
public long fact(int factNum) {
return LongStream.rangeClosed(1, factNum)
.reduce(1, (long fact, long iteration) -> fact * iteration);
}
рекурсия:
public long fact(int factNum) {
if (factNum <= 2) {
return factNum;
}
return factNum * fact(factNum - 1);
}