Привет, я получил одну задачу. вывод должен выглядеть следующим образом:
{
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(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++)