Таблица умножения

  • 6
  • Недоступна
Проинициализируй массив MULTIPLICATION_TABLE значением new int[10][10], заполни его таблицей умножения и выведи в консоли в следующем виде: 1 2 3 4 … 2 4 6 8 … 3 6 9 12 … 4 8 12 16 … … Числа в строке разделены пробелом.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (208)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Killua
Уровень 6
вчера, 12:50
Боже, глядя на чужой код, понял как много лишних действий сделал... Радует одно, что смог сделать.
3 февраля, 16:15
Решал не сам, а немного подсмотрел. В итоге, спустя 15 минут копания в теории и в коде, я наконец-то понял логику и она оказалась довольно-таки простой, хотя сам я до этого додумался бы не скоро. После этого кода я склоняюсь к теории "ширина-высота".
for (int i = 0; i < MULTIPLICATION_TABLE.length; i++){
            for(int j = 0; j < MULTIPLICATION_TABLE.length; j++){
                MULTIPLICATION_TABLE[i][j] = (i + 1) * (j + 1);
                System.out.print(MULTIPLICATION_TABLE[i][j] + " ");

            }
            System.out.println();
Vladislav
Уровень 12
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(); } } }
Alexey Andreevich
Уровень 9
29 января, 13:58
package com.javarush.task.pro.task05.task0509;

/*
Таблица умножения
*/

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[i].length; j++) {
                  MULTIPLICATION_TABLE[i][j] = (i + 1) * (j + 1);
                System.out.print(MULTIPLICATION_TABLE[i][j] + " ");
            }
            System.out.println();
        }
    }
}
Anonymous #3208105
Уровень 7
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(); } } }
Peregrinus Umbra
Уровень 10
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++; } Само собой, создание массива и команды на распечатывание я опустил.
Антон
Уровень 22
25 января, 11:34
Можно обойтись только счетчиками циклов. Еще одна переменная "а" не нужна. Обратите внимание, что на каждой итерации a == i + 1. И для большей оптимизации кода вывод в консоль можно добавить прямо внутри второго цикла.
Peregrinus Umbra
Уровень 10
28 января, 23:34
Спасибо за примечание! И правда, оптимизировать есть куда. Сдаётся мне, в программировании, как в шахматах - если нашёл хороший ход, значит есть ход лучше.
RobotVerter Работает в Institute
5 февраля, 03:21
второй счетчик лучше делать по длине первого массива for (int j = 0; j < MULTIPLICATION_TABLE[ i ].length; j++) иначе при массиве int [10] [9] выйдете за зганицы массива с ошибкой - ArrayIndexOutOfBoundsException, хотя в эталонном решении не так.
Peregrinus Umbra
Уровень 10
19 января, 20:17
2 дня ломал голову, родил абберацию на 112 строк. Проверялка всё приняла. Но думаю, как теперь оптимизировать это всё. Сложна.
10 января, 23:01
MULTIPLICATION_TABLE[i - 1][j - 1] = i * j;
                System.out.print(MULTIPLICATION_TABLE[i - 1][j - 1]);
зачем нам эти строчки,я вообще не могу понять,и что они делают.Подскажите пожалуйста
Timur Khasmamedov
Уровень 14
Expert
13 января, 16:24
Смотри, если ты про верное решение (или которое отмечено как верное), то что во внутреннем, что во внешнем цикле
for (int i = 1; i <= 10; i++)
счетчик с единицы и до 10. теперь. допустим, у тебя есть массив из 10 элементов. (индексация, напомню, с 0 и до 9, т.е. 10 индекса НЕТ) если ты попробуешь вывести на экран arr[10], то у тебя выскочит эксепшн (ошибка) так и здесь, если попробовать достучаться до элемента
MULTIPLICATION_TABLE[i][j];
что по j, что по j, выхватишь ошибку. сразу же. (когда i/j будет равно 10, условие 10 = 10 ,будет истинно и ты... войдешь в этот последний коварный виток цикла, потом попробуешь изменить элемент или его распечатать - и эксепшн) сравни с вариантом:
MULTIPLICATION_TABLE[i-1][j-1];
такая же ситуация и здесь
System.out.print(MULTIPLICATION_TABLE[i - 1][j - 1]);
при попытке обратиться к несуществующему элементу будет... эксепшн. при этом на по заданию нужно вывести... 1 2 3 4...10 2 3 4 ... 10 как вывести 10 в первом случае ? правильно. умножить i на 10. как добраться до последней десятой строчки и работать с первым измерением как с 10 ? 10 * j как по мне, намного проще делать так:
multiplicationTable[i][j] = (i + 1) * (j + 1);
и выводить обычные ячейки при циклах с 0 и до родной длины
Danil
Уровень 6
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(); } } }
Danil
Уровень 6
13 декабря 2022, 19:25
хах надо было убрать две строки ненужные прост)) MULTIPLICATION_TABLE[i][0] = i; MULTIPLICATION_TABLE[0][j] = j;
Ars_Lay_
Уровень 7
13 декабря 2022, 17:56
Заглянул в следующие лекции, что бы решить =)) логично)
Иван Аканов
Уровень 9
12 января, 22:06
Авторы курса специально дают задачи которые нужно додумывать, но раскрывают приемы только в следующих лекциях, чтобы потренировать обучающихся. Это уже обсуждалось ранее.