|
0 / 0 / 0
Регистрация: 22.11.2015
Сообщений: 22
|
|||||||||||
редактирование Треугольника Паскаля (используя массивы)18.01.2016, 16:43. Показов 7101. Ответов 9
Метки нет (Все метки)
Всем доброго времени суток!
Столкнулся с очередной проблемой, которую не могу решить, поэтому прибегаю к помощи профессионалов) Собственно задание такое, создайте и выведите на консоль треугольник Паскаля (вида елочки), примерно такого вида:
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1
0
|
|||||||||||
| 18.01.2016, 16:43 | |
|
Ответы с готовыми решениями:
9
Построить треугольник Паскаля. Используя треугольник Паскаля, вычислить 𝑘−ое число Фиббоначчи. Нумерация чисел Фиббона
Вычисление Треугольника Паскаля |
|
Творение дьявола
23 / 23 / 3
Регистрация: 30.08.2015
Сообщений: 157
|
|
| 18.01.2016, 17:12 | |
|
Vipcars, а число элементов на каждой строке указать не пробовали?
0
|
|
|
0 / 0 / 0
Регистрация: 22.11.2015
Сообщений: 22
|
|
| 18.01.2016, 17:26 [ТС] | |
|
Virus dena, не пробовал. Я пытаюсь сейчас отредактировать через printf, но пока не совсем удачно)
0
|
|
|
10 / 11 / 6
Регистрация: 11.05.2015
Сообщений: 101
|
|
| 18.01.2016, 17:38 | |
|
создать массив пустых стрингов, 6 штук, и выводить в цыкле между строками 12-13 в порядке убивания, создав счетчик и уменьшая его на 1 после полного прохода всех итераций цикла
0
|
|
|
7 / 7 / 3
Регистрация: 19.08.2015
Сообщений: 76
|
|
| 18.01.2016, 17:42 | |
|
1) Сначала делаем метод, определяющий количество разрядов в числе.
Что мне первое в голову пришло, это создать цикл, в котором с каждым шагом число, в котором мы пытаемся узнать количество разрядов, делится на 10 и результат записывается в формате double. После этого проверяем, является ли число меньшим чем единица. Если является, то прерываем цикл и количеством разрядов является количество итераций +1. То есть, если до второй итерации не дошло, и начальное значение переменной цикла i было 0, то количество разрядов равно i + 1 = 1, если цикл прервался после одного прохода, i + 1 = 2. 2) Создаём метод, вычисляющий длину вашей строки. Этот метод принимает на вход одномерный массив. Сначала вычисляем количество цифр, то есть суммируем результаты созданного в первом пункте метода от каждого значения в строке массива. Далее считаем количество пробелов. Оно равняется количеству чисел в строке массива -1. Суммируем оба получившихся значения. 3) Создаём одномерный массив, равным количеству строк в вашем массиве. В этом массиве будет указываться количество пробелов, которое нужно будет поставить перед выводом строк вашего массива. 4) Чтобы начать заполнять вышеуказанный массив, необходимо начать с вычисления длины самой длинной строки, то есть последней. Для этого просто применяем к ней метод во втором пункте. 5) Чтобы заполнить каждый элемент массива, необходимо выполнить три шага. Вычисляем длину строки по методу во втором пункте. Вычитаем это значение из самой длинной строки. Результат делим пополам(нужно проверять, не является ли делимое нулём). В результате деления получаем количество пробелов, которое необходимо поставить перед каждой строкой. В случае нечётного числа, оно округляется в меньшую сторону и нас это устраивает. Надеюсь, использовать получившийся массив с количеством пробелов вы сможете самостоятельно.
0
|
|
|
Творение дьявола
23 / 23 / 3
Регистрация: 30.08.2015
Сообщений: 157
|
|
| 18.01.2016, 17:47 | |
|
Vipcars, уже заметила)
Добавлено через 32 секунды RentrAnt, там всего строк 7 Добавлено через 1 минуту Vipcars, а если к длине строки каждый раз прибавлять по одному? Добавлено через 1 минуту Bochkarev, можно пример кода? А то как - то все сложно у Вас(
0
|
|
|
7 / 7 / 3
Регистрация: 19.08.2015
Сообщений: 76
|
|
| 18.01.2016, 18:41 | |
|
Вряд ли пример кода поможет понять, я могу просто описать иными словами.
Чтобы более-менее точно определить количество пробелов, которое необходимо поставить перед каждой строкой, нужно сначала вычислить длину самой большой строки, то есть посчитать количество пробелов в ней и количество цифр, посчитав, что ширина цифры примерно равна ширине пробела. Далее вычисляем количество недостающих пробелов, отнимая от самой длинной строки длину заданной, потом делим это количество этих пробелов на два, так как они в каком-то смысле с двух сторон и округляем в меньшую сторону - это и есть число пробелов, которое нужно поставить перед строкой.
0
|
|
|
323 / 310 / 206
Регистрация: 14.09.2015
Сообщений: 827
|
||||||||||||||||
| 18.01.2016, 23:43 | ||||||||||||||||
Сообщение было отмечено Vipcars как решение
Решение
Vipcars, ну не знаю, далеко от совершенства, но что-то вроде того получилось:
Кликните здесь для просмотра всего текста
может попробовать другие коэффициенты подобрать... Пока что только такой вариант... Добавлено через 52 минуты Ok! Вот при таких параметрах ещё туда-сюда получается: Кликните здесь для просмотра всего текста
Как-то так... До тринадцати работает нормально, потом начинает сливаться нижняя строка... Увы. Ну уж дальше сами справитесь, я полагаю.
1
|
||||||||||||||||
|
0 / 0 / 0
Регистрация: 22.11.2015
Сообщений: 22
|
|
| 19.01.2016, 00:54 [ТС] | |
|
Bochkarev, спасибо за идею, в теории все ясно, но очень трудно реализовать) HOBATOP, спасибо за решение!
0
|
|
|
7 / 7 / 3
Регистрация: 19.08.2015
Сообщений: 76
|
||||||
| 19.01.2016, 14:55 | ||||||
Сообщение было отмечено Vipcars как решение
Решение
Может быть сделать чуть сложнее, зато треугольник довольно симметричный получается даже с большим количеством строк.
1
|
||||||
| 19.01.2016, 14:55 | |
|
Помогаю со студенческими работами здесь
10
Построить n-ю строку треугольника Паскаля Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать контроль заполнения реквизита табличной части. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
|
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|