Проинициализируй массив MULTIPLICATION_TABLE значением new int[10][10], заполни его таблицей умножения и выведи
в консоли в следующем виде:
1 2 3 4 …
2 4 6 8 …
3 6 9 12 …
4 8 12 16 …
…
Числа в строке разделены пробелом.
Таблица умножения
- 6
Недоступна
Комментарии (208)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Killua
вчера, 12:50
Боже, глядя на чужой код, понял как много лишних действий сделал...
Радует одно, что смог сделать.![]()

0
Нурболот Кудайкулов
3 февраля, 16:15
Решал не сам, а немного подсмотрел. В итоге, спустя 15 минут копания в теории и в коде, я наконец-то понял логику и она оказалась довольно-таки простой, хотя сам я до этого додумался бы не скоро.
После этого кода я склоняюсь к теории "ширина-высота".
+1
Vladislav
30 января, 10:39
Для тех кто не хочет - 1. УСЛОВИЯМ НЕ СООТВЕТВУЕТ
public class Main {
public static int[][] MULTIPLICATION_TABLE;
public static void main(String[] args) {
MULTIPLICATION_TABLE = new int[11][11];
for (int i = 0; i < 11; i++) {
for (int j = 0; j < 11; j++) {
MULTIPLICATION_TABLE[i][j] = i * j;
System.out.print(MULTIPLICATION_TABLE[i][j] + " ");
}
System.out.println();
}
}
}
0
Alexey Andreevich
29 января, 13:58
0
Anonymous #3208105
27 января, 21:12
Лаконично вроде.
public class Solution {
public static int[][] MULTIPLICATION_TABLE;
public static void main(String[] args) {
MULTIPLICATION_TABLE = new int[10][10];
for (int a = 0; a < MULTIPLICATION_TABLE.length; a++) {
for (int i = 0; i < MULTIPLICATION_TABLE[a].length; i++) {
MULTIPLICATION_TABLE[a][i] = (i + 1) * (a + 1);
System.out.print(MULTIPLICATION_TABLE[a][i] + " ");}
System.out.println();
}
}
}
0
Peregrinus Umbra
19 января, 21:41
Оптимизировал, народ. Конечно, моё решение не такое элегантное, как у других начинающих программистов, но тем не менее. Далее СПОЙЛЕРЫ! Будьте осторожны и старайтесь самостоятельно дойти до решения.
int a = 1;
for (int i = 0; i <MULTIPLICATION_TABLE.length; i++) {
for (int j = 0; j < MULTIPLICATION_TABLE.length; j++) {
MULTIPLICATION_TABLE [i] [j] = (j+1)*a;
}
a++;
}
Само собой, создание массива и команды на распечатывание я опустил.
+1
Антон
25 января, 11:34
Можно обойтись только счетчиками циклов. Еще одна переменная "а" не нужна. Обратите внимание, что на каждой итерации a == i + 1. И для большей оптимизации кода вывод в консоль можно добавить прямо внутри второго цикла.
0
Peregrinus Umbra
28 января, 23:34
Спасибо за примечание! И правда, оптимизировать есть куда. Сдаётся мне, в программировании, как в шахматах - если нашёл хороший ход, значит есть ход лучше.
0
RobotVerter Работает в Institute
5 февраля, 03:21
второй счетчик лучше делать по длине первого массива
for (int j = 0; j < MULTIPLICATION_TABLE[ i ].length; j++) иначе при массиве int [10] [9] выйдете за зганицы массива с ошибкой - ArrayIndexOutOfBoundsException, хотя в эталонном решении не так.
0
Peregrinus Umbra
19 января, 20:17
2 дня ломал голову, родил абберацию на 112 строк. Проверялка всё приняла. Но думаю, как теперь оптимизировать это всё. Сложна.
0
Дмитрий Папакулс
10 января, 23:01
зачем нам эти строчки,я вообще не могу понять,и что они делают.Подскажите пожалуйста
0
Timur KhasmamedovExpert
13 января, 16:24
Смотри,
если ты про верное решение (или которое отмечено как верное),
то что во внутреннем, что во внешнем цикле
счетчик с единицы и до 10.
теперь. допустим, у тебя есть массив из 10 элементов. (индексация, напомню, с 0 и до 9, т.е. 10 индекса НЕТ)
если ты попробуешь вывести на экран arr[10], то у тебя выскочит эксепшн (ошибка)
так и здесь,
если попробовать достучаться до элемента
что по j, что по j, выхватишь ошибку. сразу же. (когда i/j будет равно 10, условие 10 = 10 ,будет истинно и ты... войдешь в этот последний коварный виток цикла, потом попробуешь изменить элемент или его распечатать - и эксепшн)
сравни с вариантом:
такая же ситуация и здесь
при попытке обратиться к несуществующему элементу будет... эксепшн.
при этом на по заданию нужно вывести...
1 2 3 4...10
2
3
4
...
10
как вывести 10 в первом случае ? правильно. умножить i на 10.
как добраться до последней десятой строчки и работать с первым измерением как с 10 ?
10 * j
как по мне, намного проще делать так:
и выводить обычные ячейки при циклах с 0 и до родной длины +2
Danil
13 декабря 2022, 18:47
почему не принимает решение? все ведь правильно
public class Solution {
public static int[][] MULTIPLICATION_TABLE;
public static void main(String[] args) {
MULTIPLICATION_TABLE = new int[10][10];
for (int i = 0; i < MULTIPLICATION_TABLE.length; i++) {
for (int j = 0; j < MULTIPLICATION_TABLE.length; j++) {
MULTIPLICATION_TABLE[i][0] = i;
MULTIPLICATION_TABLE[0][j] = j;
MULTIPLICATION_TABLE[i][j] = (1 + i) * (j + 1);
System.out.print(MULTIPLICATION_TABLE[i][j] + " ");
}
System.out.println();
}
}
}
0
Danil
13 декабря 2022, 19:25
хах надо было убрать две строки ненужные прост))
MULTIPLICATION_TABLE[i][0] = i;
MULTIPLICATION_TABLE[0][j] = j;
0
Ars_Lay_
13 декабря 2022, 17:56
Заглянул в следующие лекции, что бы решить =)) логично)
0
Иван Аканов
12 января, 22:06
Авторы курса специально дают задачи которые нужно додумывать, но раскрывают приемы только в следующих лекциях, чтобы потренировать обучающихся. Это уже обсуждалось ранее.
0