3! = 3 * 2 * 1 = 6Вывод, необходимый в Java
БЕЗ ИСПОЛЬЗОВАНИЯ LOOP
Спасибо!
Моя функция ниже:
public static int factorial(int n)
{
if ((n == 1) || (n == 0))
return 1;
else
return(n * factorial(n-1));
}
3! = 3 * 2 * 1 = 6Вывод, необходимый в Java
БЕЗ ИСПОЛЬЗОВАНИЯ LOOP
Спасибо!
Моя функция ниже:
public static int factorial(int n)
{
if ((n == 1) || (n == 0))
return 1;
else
return(n * factorial(n-1));
}
Вы можете напечатать значение параметра, переданного в факторного метода так:
создать функцию:
public static int factorial(int n) {
System.out.print(n); // here
if (n > 1) System.out.print("*"); // and here
if ((n == 1) || (n == 0))
return 1;
else {
return (n * factorial(n - 1));
}
}
Производит:
3!=3*2*1=6
wow большое вам спасибо! :) –
Хотя это может решить немедленный вопрос OP, мне кажется, что неправильная практика заключается в том, чтобы вводить код ввода пользователя в конструктор, потому что код не используется повторно и может быть вызван только один раз. Чтобы понять, почему, представьте, что исключение происходит в конструкторе, JVM завершит инициализацию объекта, но теперь факториал не был бы создан должным образом. И мы не можем вызвать конструктор во второй раз. –
@OP вы должны послушать Тима здесь. Спасибо за комментарий, Тим. – GurV
Вы можете использовать глобальную переменную (StringBuffer) и добавить числа к ней из факториала. Используйте эту переменную из основного метода при печати.
Добро пожаловать в переполнение стека! Похоже, вы просите о помощи на дому. Хотя у нас нет проблем с самим собой, обратите внимание на эти [dos and don'ts] (http://meta.stackoverflow.com/questions/334822/how-do-i-ask-and-answer-homework-questions/338845 # 338845), и соответственно отредактируйте свой вопрос. –
Рекурсивный факторный метод выглядит правильно. Однако в странном повороте событий вы решили получить пользовательский ввод от конструктора 'FF'. Это необычно и не должно быть сделано. –
Не знаю, о чем вы просите - у вас в настоящее время нет цикла, у вас есть рекурсия. – luk2302