@wusleng

Как происходит вычисление?

Есть код приведенный в учебнике Java8, не могу разобрать как происходит вычисление суммы и натурального числа (факториала):

public  class Help {
public static void main(String args[]){

int sum = 0;
int fact = 1;
// Вычисление факториала чисел от 1 до 5
for ( int i = 1; i <= 5; i++) {
sum += i; // переменная i доступна во всем цикле
fact *= i;
    
}
System.out.println("Cyммa: " + sum);
System.out.println("Фaктopиaл: " + fact);
        
        
    }
    
    }

На выходе получается Сумма 15.
И натуральное число (факториал) 120.
  • Вопрос задан
  • 83 просмотра
Решения вопроса 1
Koshkasobaka
@Koshkasobaka
for (int i = 1; i <=5; i++)
Поехали,
1 ход цикла: sum = sum(0) + 1 // получаем, что sum теперь равен 1
2 ход: sum = sum(1) + 2 // теперь sum = 3
3 ход: sum = sum(3) + 3 // sum = 6
4 ход: sum = sum(6) + 4 // sum = 10
5 ход: sum = sum(10) + 5 // получаем sum = 15

Факториал считай по той же схеме)
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Bavashi
@Bavashi
Чтобы понять как работает код можно, как вариант, воспользоваться выводом в консоль System.out.println(). То есть добавлять этот метод в места где непонятно как что работает и смотреть как изменяются значения. Например, в вашем случае можно попробовать так:
public static void main(String args[]){

        int sum = 0;
        int fact = 1;
        // Вычисление факториала чисел от 1 до 5
        for ( int i = 1; i <= 5; i++) {
            System.out.println("Проход в цилке номер " + i + ":");
        sum += i; // переменная i доступна во всем цикле
            System.out.println("sum = " + (sum - i) + " + " + i + " = " + sum);
        fact *= i;
            System.out.println("fact = " + (fact / i) + " * " + i + " = " + fact + "\n");
        }
        
        System.out.println("Cyммa: " + sum);
        System.out.println("Фaктopиaл: " + fact);
    }
Ответ написан
@wusleng Автор вопроса
Могли бы Вы пояснить эту часть кода?? В общем я принцип вычисления понял, но то как вы написали данные части кода , просто ну никак до меня не доходит

sum += i; // переменная i доступна во всем цикле
System.out.println("sum = " + (sum - i) + " + " + i + " = " + sum);

почему сначала вычисляем разность sum и i , а потом снова плюсуем "i" и sum ?
Простите, я абсолютный новичок (
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы