Почему мой код при печати треугольных чисел не работает? - PullRequest
0 голосов
/ 13 октября 2018

Мой код не распечатывает треугольные числа в соответствии с формулой, а только зацикливает число 1.

В чем моя ошибка?

public class Triangular{
    public static void main(String[] args) {
        int n = 1;
        int t = (n * (n + 1)) / 2;

        while(n <= 10) {
            n++;
            System.out.println(t);
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 13 октября 2018

Хотя вы увеличиваете n на единицу, вы не пересчитываете значение t внутри цикла.

Попробуйте вычислить значение t внутри цикла, например:

public static void main(String[] args)
{
     int n = 0;
     int t = 0;
     while (n <= 10)
     {
        n++;
        t = (n * (n + 1))/2;
        System.out.println(t);
    }

}

Каждый раз, когда вы увеличиваете значение n, вам необходимо пересчитать значение t, передав новое значение n в формулу.

0 голосов
/ 13 октября 2018

t не пересчитывается при изменении n.Вы должны назначить его внутри цикла while.Также вы можете просто сделать это:

public class Triangular {
    public static void main(String[] args) {
        int n = 1;
        int t = 1;

        while(n <= 10) {
            System.out.println(t);
            n++;
            t += n;
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...