Изучите несколько способов печати треугольников в Java с помощью циклов for.
- Автор записи
Автор: Catalin Burcea
Дата записи
Видео:Java - Структура программы - Треугольник ПаскаляСкачать
1. введение
В этом уроке мы рассмотрим несколько способов печати треугольника на Java.
Естественно, существует много типов треугольников. Здесь мы рассмотрим только несколько из них: правый и равнобедренный треугольники.
Видео:Java - Структура - Треугольник ПаскаляСкачать
2. Построение прямоугольного треугольника
Прямоугольный треугольник-это самый простой тип треугольника, который мы будем изучать. Давайте быстро взглянем на результат, который мы хотим получить:
Здесь мы замечаем, что треугольник состоит из 5 рядов, каждый из которых имеет количество звезд, равное текущему номеру строки. Конечно, это наблюдение можно обобщить: для каждой строки от 1 до N мы должны вывести r звезды , где r – текущая строка и N – общее количество строк.
Итак, давайте построим треугольник, используя две петли for :
Видео:Java - урок 5.3 (Практика - построение пирамиды)Скачать
3. Построение Равнобедренного треугольника
Теперь давайте посмотрим на форму равнобедренного треугольника:
Что мы видим в этом случае? Мы замечаем, что, в дополнение к звездам, нам также нужно напечатать несколько пробелов для каждой строки. Итак, мы должны выяснить, сколько пробелов и звездочек мы должны напечатать для каждой строки. Конечно, количество пробелов и звездочек зависит от текущей строки.
Во-первых, мы видим, что нам нужно напечатать 4 пробела для первой строки, и, когда мы спускаемся по треугольнику, нам нужно 3 пробела, 2 пробела, 1 пробел и вообще никаких пробелов для последней строки. Обобщая, нам нужно напечатать N – r пробелы для каждой строки .
Во-вторых, сравнивая с первым примером, мы понимаем, что здесь нам нужно нечетное количество звезд: 1, 3, 5, 7…
Итак, нам нужно напечатать r x 2 – 1 звезды для каждой строки .
3.1. Использование вложенных циклов for
Основываясь на приведенных выше наблюдениях, давайте создадим наш второй пример:
3.2. Использование одного цикла for
На самом деле, у нас есть другой способ, который состоит только из одного для цикла – он использует библиотеку Apache Commons Lang 3 .
Мы собираемся использовать цикл for для перебора строк треугольника, как мы делали в предыдущих примерах. Затем мы будем использовать метод StringUtils.repeat () , чтобы сгенерировать необходимые символы для каждой строки:
Или мы можем проделать ловкий трюк с методом substring ()|/.
Мы можем извлечь методы StringUtils.repeat() выше, чтобы построить вспомогательную строку, а затем применить к ней метод String.substring () . Вспомогательная строка-это конкатенация максимального количества пробелов и максимального количества звезд, которые нам нужны для печати строк треугольника.
Глядя на предыдущие примеры, мы замечаем, что нам нужно максимальное количество N – 1 пробелов для первой строки и максимальное количество N x 2 – 1 звезды для последнего ряда:
Например, когда N и r , нам нужно напечатать ” *****”, который включен в переменную helperString . Все, что нам нужно сделать, это найти правильную формулу для метода substring () .
Теперь давайте рассмотрим полный пример:
Точно так же, немного поработав, мы могли бы перевернуть треугольник вверх ногами.
Видео:Алгоритмы. Попадание точки в треугольникСкачать
4. Сложность
Если мы еще раз взглянем на первый пример, мы заметим, что внешний цикл и внутренний цикл имеют максимум N шагов. Следовательно, у нас есть O(N^2) временная сложность, где N – количество строк треугольника.
Второй пример аналогичен — с той лишь разницей, что у нас есть два внутренних цикла, которые являются последовательными и не увеличивают временную сложность.
В третьем примере, однако, используется только цикл for с N шагами. Но на каждом шаге мы вызываем либо метод StringUtils.repeat () , либо метод substring() в вспомогательной строке, каждый из которых имеет O(N) сложность. Таким образом, общая временная сложность остается прежней.
Наконец, если мы говорим о вспомогательном пространстве, мы можем быстро понять, что для всех примеров сложность остается в переменной StringBuilder . Добавляя весь треугольник к переменной result , мы не можем иметь меньше O(N^2) сложности.
Конечно, если бы мы непосредственно печатали символы, у нас была бы постоянная сложность пространства для первых двух примеров. Но в третьем примере используется вспомогательная строка, и сложность пространства будет O(N) .
Видео:Уроки Java для начинающих | #8 - Циклы (For, While, Do while)Скачать
5. Заключение
В этом уроке мы узнали, как печатать два распространенных типа треугольников в Java.
Во-первых, мы изучили прямоугольный треугольник, который является самым простым типом треугольника, который мы можем напечатать на Java. Затем, мы исследовали два способа построения равнобедренного треугольника. Первый использует только для циклов, а другой использует преимущества метода StringUtils.repeat() и String.substring() и помогает нам писать меньше кода.
Наконец, мы проанализировали сложность времени и пространства для каждого примера.
Как всегда, все примеры можно найти на GitHub .
Видео:Треугольник Паскаля программаСкачать
Печать *как треугольники в Java?
мое задание в моем курсе Java-сделать 3 треугольника. Один выровнен слева, один выровнен справа и один центрирован. Я должен сделать меню для какого типа треугольника, а затем ввести, сколько строк требуется. Треугольники должны выглядеть так
до сих пор я смог сделать левый выровненный треугольник, но я не могу получить два других. Я попробовал погуглить, но ничего не получилось. Кто-нибудь может помочь? У меня это до сих пор.
Видео:КАК НАРИСОВАТЬ ТРЕУГОЛЬНИК В КОНСОЛИ C# | C# ДОМАШНИЕ ЗАДАНИЯ | #5Скачать
20 ответов
подсказка: для каждой строки, вы должны первый печать некоторых пробелов и затем печать некоторых звезд. Количество пробелов должно уменьшаться на один ряд, а количество звезд должно увеличиваться.
для центрированного вывода увеличьте количество звезд на два для каждой строки.
Илмари Karonen имеет хороший совет, и я просто хочу обобщить немного. В общем, прежде чем вы спросите: «как я могу заставить компьютер сделать это?»спроси «как бы Я этого?»
Итак, если кто-то дал вам пустой документ Word и попросил вас создать треугольники, как бы вы это сделали? Какое бы решение вы ни придумали, обычно нетрудно перевести его на Java (или любой другой язык программирования). Возможно, это не лучшее решение, но (надеюсь!) это сработает, и это может указать вам на лучшее решение.
Так, например, может быть, вы скажете, что вы наберете базу, затем пойдете вверх по строке, затем введите следующую самую высокую строку и т. д. Это предполагает, что вы можете сделать то же самое в Java-создать список строк, base-to-top, а затем отменить их. Это может означать, что вы можете просто создать их в обратном порядке, а затем не нужно их отменять. А потом . —1—>что может предложить, что вам не нужен список больше, так как вы будете просто создавать и печатать их в том же порядке-и в этот момент Вы пришли к совету Илмари Каронен.
или, может, вы придумаете другой способ сделать это . может быть, вы придумаете идею Илмари Karonen более непосредственно. Несмотря на это, он должен помочь вам решить эту и многие другие проблемы.
левый алингед треугольник- * **
правый алингед треугольник- *
**
сверху шаблон мы узнаем, что- 1) Нам нужно напечатать шаблон, содержащий n строк (для вышеуказанного шаблона n равно 4). 2) внутренне в каждой строке нам нужно напечатать пробелы, за которыми следует звезда, а затем снова пробел . Нет пробелов в каждая строка в начале уменьшается на 1. Итак, alinged треугольника нужно использовать 3 цикла. 1-й «for loop» для печати n строк. 2-ой » для петли для печатая космосов. 3-й «для петли» для печати звезд.
код для центрального треугольника —
для правильного треугольника, для каждой строки:
- во-первых: вам нужно напечатать пробелы от 0 до rowNumber — 1 — i .
- второе: вам нужно напечатать * С rowNumber — 1 — i до rowNumber .
Примечание: i — индекс строки от 0 до rowNumber и rowNumber — количество строк.
для центрального треугольника: он выглядит как «правый треугольник» плюс добавление * в соответствии с индексом строки (например : в первой строке вы добавите ничего, потому что индекс равен 0, во второй строке вы добавите один » * » и так далее).
/ / Это для нормального треугольника
/ / Это для левого треугольника, просто удалено пространство перед печатью *
1) Нормальный треугольник
2) прямоугольный треугольник
3) левый угол треугольника
я знаю, что это довольно поздно, но я хочу поделиться своим решением.
пробелы слева от треугольника автоматически настраиваются в зависимости от того, какой символ или какое слово вы хотите напечатать.
если whatToPrint = «x» и floors = 3 он будет печатать
x xxx xxxxx Если нет автоматической регулировки пробелов, это будет выглядеть так ( whatToPrint = «xxx» этаже граф)
xxx xxxxxxxxx xxxxxxxxxxxxxxx
поэтому я сделал добавить простой код что этого не произойдет.
для левой половины треугольника, просто изменить strLen * floors to strLen * (floors * 2) и f +=2 to f++ .
для правой половины треугольника просто удалите эту петлю for (int k = 1; k изменить h to 0 , если вы решите удалить его, не удалить System.out.print(» «); .
ну для треугольника, вам нужно иметь три петли вместо двух , один внешний цикл для итерации no линии две параллельные петли внутри основной петли первый цикл печатает уменьшение no петель второй цикл печатает увеличение no ‘‘ ну я мог бы дать точную логику , но лучше, если вы сначала попробуйте просто сконцентрируйся на том, сколько мест и сколько «‘ U нужно в каждой строчке связать no символов с циклом, повторяющим no линий и ты молодец . если это беспокоит больше, дайте мне знать, я объясню с логикой и кодом, а также
это будет печатать звезды в треугольнике:
чтение и понимание этого должно помочь вам в разработке логики в следующий раз..
Видео:#26. Треугольник Паскаля как пример работы вложенных циклов | Python для начинающихСкачать
Треугольник из звёздочек: Рисуем в Java
Автор: yasidoch
Дата записи
Рассмотрим способы, которыми можно нарисовать треугольник в Java из чисел или других символов. Приведу пару примеров кода. Чтобы не оказывать медвежью услугу тем, кто ищет помощь в решении, но хочет все-таки решить самостоятельно, первый вариант будет наглядным, а еще один — в виде инструкции-объяснения.
Пример 1. Рисуем треугольник. Используем String и цикл for.
Объявляем переменную s типа String, запускаем цикл от 0 до 9 включительно, выводим на экран переменную s до тех пор, пока i будет меньше 9. Первая итерация: i=0, следовательно выводим на печать *. Вторая итерация: i=1, следовательно выводим на печать s + «*», а это уже два символа.
Таким образом совершается 10 проходов
И в результате мы получаем следующее:В случае, если мы хотим перевернуть треугольник, мы меняем цикл. Подумайте, что надо изменить, чтобы перевернуть треугольник.
Пример 2. При помощи двух циклов for.
Первый проход внешнего цикла: i=0;
Внутренний цикл: j = 0;
«j» меньше или равно «i» ? Если «Да», то добавляем к «j» единицу, выводим «*» .
Теперь j=1. «j» все еще меньше или равно «i» ?
Нет, завершаем внутренний цикл.
Внешний цикл: i=0 ; «i» меньше 10 ? Ответ «Да», добавляем к «i» единицу, переносим строчку.
Итог после первой итерации: *
Вторая итерация внешнего цикла: i=1
Внутренний цикл: j = 0;
«j» меньше или равно «a» ?
Да, добавляем к «j» единицу, выводим «*».
Теперь j=1. «j» все еще меньше или равно «i» ?
Да, добавляем к «j» единицу, печатаем еще одну «*» .
Теперь j=2.
«j» все еще меньше или равно «i» ? Нет, закончили внутренний проход.
Внешний цикл: i=1 ; «i» меньше 10 ? «Да», добавляем к «i» единицу, переносим строчку. Теперь i=2.
Итог после второй итерации:
*
**
Это описание принципа действия программы Java, написанной при помощи двух циклов for. Сперва выполняется внутренний цикл, за ним внешний. После каждой проверки условия внешнего цикла for внутренний цикл «сбрасывается».
📽️ Видео
Java - цикл for; вложенные циклы for; использование forСкачать
ТРЕУГОЛЬНИКИ в ТЕРМИНАЛЕ на JavaScriptСкачать
Треугольник Серпинского (фрактал) на JavaScriptСкачать
Треугольник ПаскаляСкачать
JavaScript v.2.0 Циклы While и Do whileСкачать
Треугольник Паскаля Python. Коэффициенты для Бинома НьютонаСкачать
Программа на Java считает площадь и периметр круга (окружность)Скачать
Java для начинающих. Урок 23(продолжение): Форматирование строк в JavaСкачать