Неправильный вывод в моей задаче, не могу ее решить

1

Привет, я получил одну задачу. вывод должен выглядеть следующим образом:

{
0
0 1
0 2 4
0 3 6 9
0 4 8 12 16
0 5 10 15 20 25
0 6 12 18 24 30 36
0 7 14 21 28 35 42 49
0 8 16 24 32 40 48 56 64
0 9 18 27 36 45 54 63 72 81
}

Я попытался это сделать: вот мой код:

public class ContnueUzOznakoMojNacin 
{
public static void main(String args[])
{
    int k=0, v=0;
    int j;
    for(int i=0;i<10;i++)
    {
        for(j=10-i;j<10;j++)
        {
            System.out.print(v+" ");
            v+=k;
        }
        System.out.println();
        v=0;
        k++;
    }
}
}

И выход я получаю неправильно, и я не понимаю, почему. вот:

{
0 
0 2 
0 3 6 
0 4 8 12 
0 5 10 15 20 
0 6 12 18 24 30 
0 7 14 21 28 35 42 
0 8 16 24 32 40 48 56 
0 9 18 27 36 45 54 63 72
}

Когда я следую этим циклам и приращениям из моей программы, я не могу найти ошибку.

первая строка в порядке вывода должна быть 0; но вторая строка, вывод должен быть 0 1; не 0 2? Мне не нужно, чтобы вы давали мне код для этой задачи, мне нужно, чтобы вы помогли мне сделать это, чтобы сказать мне, где я совершил ошибку, поэтому я делаю это самостоятельно. Благодаря :)

Теги:
for-loop

1 ответ

8

Измените эту строку:

for(j=10-i;j<10;j++)

к этому:

for(j=9-i;j<10;j++)

И вот объяснение:

Итак, i начинаю 0, правильно? Что будет i максимум? 9, потому что in for(int i=0;i<10;i++), i не могу добраться до 10.

Посмотрим, как это влияет for(j=10-i;j<10;j++). Если i равно 9 (последняя строка), то цикл j будет работать только 9 раз. j будет равно 1, 2, 3, 4, 5, 6, 7, 8, 9. Это всего 9 циклов. Если вы посмотрите на нижнюю часть верхнего треугольника, вы увидите, что 0 9 18 27 36 45 54 63 72 имеет только 9 чисел.

Мы хотим, чтобы j выполнялся 10 раз, как вы можете видеть по базе правильного треугольника: 0 9 18 27 36 45 54 63 72 81. как нам это сделать? Мы делаем j запускаем еще один раз на каждом цикле i, уменьшая начальное число (10-i) на единицу (что равно 9-i). Так вы достигаете

for(j=9-i;j<10;j++)
  • 0
    Понял сейчас, большое спасибо.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню