for (int i = 9; i >= 0; i--){
System.out.print(i);
Yaroslav Horych
6 уровень
Подскажите, что не так?, выводит десятизначное число, но проверку не проходит
Обсуждается
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Sofie
3 мая 2020, 15:28
Я решила эту задачу через рекурсию, этой темы еще не было.
Создаем дополнительный метод, который будет делать всю работу:
"public static int fact (int a)"
По сути, нам нужно найти факториал какого-то числа (в данном случае 10), отсюда и название "fact". Внутри метода описываем его работу:
"{
if (a == 1){
return 1;
}
else
{
return a*fact(a-1);
}
}"
В методе main выводим на экран наш метод fact, указывая значение переменной а:
"System.out.println(fact(10));"
Таким образом мы легко сможем найти факториал любого числа, не только 10, достаточно лишь заменить значение переменной в скобочках.
Теперь объясню подробнее, что делает fact. Метод main должен отправиться выполнять метод fact, в нем мы задаем изначальное значение а = 10. if не выполняет первое условие, поскольку а сначала не равно 1, поэтому выполняется else, а именно а умножается на сам метод fact со значением а-1. Поэтому программа снова вычисляет значение этого метода, но уже со значением 9, затем 8, затем 7 и так, пока не будет 1. На единице метод завершится и даст произведение всех чисел от 1 до 10 (только наоборот, от 10 до 1, но это не важно).
Поскольку наш метод содержит сам себя, у нас получается рекурсия. Если знаете, что это в жизни, то это упростит понимание :)
Надеюсь, понятно объяснила)
+2
Lex Skor
30 апреля 2020, 20:01
int result = 1;
for (int i = 1; i <= 10; i++)
result = result * i;
вот мое решение, вдруг поможет
+1
Egor
2 мая 2020, 19:48
несколько секунд назад
Есть еще хороший вариант использование оператора *=
Result *= i;
+1
Evgeniya Grigorovich
30 апреля 2020, 08:47
Суть задания вывести результат умножения чисел от 1 до 10
число*число*число...и т.д.
а у вас по циклу просто выводятся в одну строчку 9876543210)
+1