1505 / 968 / 812
Регистрация: 30.04.2016
Сообщений: 3,334
|
||||||
1 | ||||||
Строки Фибоначчи10.08.2017, 18:43. Показов 5641. Ответов 4
Метки нет (Все метки)
Здравствуйте, уважаемые форумчане! Решил взяться за более сложную задачу на строки, но столкнулся с проблемой, с которой никогда раньше не сталкивался. При сдаче - во многих тестах - ошибка выполнения (что скорее всего связано с утечкой памяти). Прошу всех, кто разбирается помочь в исправлении ошибки. Можно ли данную задачу (см. мой код ниже) решать в лоб и какие исправления нужно внести в программу? Или нужно проанализировать имеющиеся последовательности и построить на их основе решение? (как это обычно и делается). Очень надеюсь на вашу помощь!
Условие: Строки Фибоначчи определяются следующим образом: Первая строка Фибоначчи равна "a" Вторая строка Фибоначчи равна "bc" Строка Фибоначчи (n + 2) является конкатенацией двух предыдущих строк. Например, первые пять строк Фибоначчи имеют вид: a bc abc bcabc abcbcabc Зная номер строки и позицию символа в ней необходимо опеределить, какой символ находится в этой строке на этой позиции. Входные данные: Задано два разделённых пробелом целых числа - K и P(0 < K ≤ 10^8), (0 < P ≤ 10^8), где K является номером строки Фибоначчи, а P - позицией искомого символа. Выходные данные: Выведите один из трёх искомых символов: "a", "b" или "c". Если в указанной позиции P заданной K-той строки символа нет (K ≤ 10^8), выведите сообщение "No solution". Входные данные: 20 46 Выходные данные: b Мое решение в лоб (работает для маленьких K и P, например, K = 20, P = 46):
0
|
10.08.2017, 18:43 | |
Ответы с готовыми решениями:
4
Получить заданную подстроку строки Фибоначчи Удалить строки, сумма цифр которых является числом Фибоначчи По заданному числу Фибоначчи найти предыдущее и следующее числа Фибоначчи По заданному числу Фибоначчи найти предыдущее и следующее числа Фибоначчи |
1682 / 1095 / 489
Регистрация: 17.07.2012
Сообщений: 5,360
|
|
10.08.2017, 19:30 | 2 |
Длина новой строки растет также быстро как и числа Фибоначчи. Потому и по памяти и по времени решать в лоб не выйдет. Надо искать закономерности, тут 100% как-то можно не формируя саму строку искать ответ. У меня пока идей никаких.
0
|
11.08.2017, 02:23 | 3 | |||||
1
|
495 / 209 / 70
Регистрация: 27.05.2016
Сообщений: 557
|
||||||
11.08.2017, 13:54 | 4 | |||||
А так нельзя? :
0
|
11.08.2017, 16:14 | 5 |
Нельзя.
Длина k-ой строки будет равно (k+1)-ому числу Фиб. А растут они очень даже неплохо. И единственный (известный мне) способ решения задачи - придраться к тому, что ограничения на позицию символа человеческие и просчитать. Что собственно и сделал пан Иван
0
|
11.08.2017, 16:14 | |
11.08.2017, 16:14 | |
Помогаю со студенческими работами здесь
5
Набрать с чисел Фибоначчи в интервале от 1 до 100, только просто числа, а также их порядковые номера в ряду Фибоначчи Задача "Строки Фибоначчи" Проверить является ли длина строки числом Фибоначчи Числа Фибоначчи вам нужно распечатать предел строки из 20 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи | |||||
Использование связки C# и PHP в корпоративной разработке и микросервисной архитектуре
InfoMaster 16.01.2025
Введение в интеграцию C# и PHP
В современной корпоративной разработке все чаще возникает потребность в создании гибких и масштабируемых решений, способных эффективно решать широкий спектр. . .
|
Как использовать Kerio дома для управления сетью и пользователями
InfoMaster 16.01.2025
Использование технологий для улучшения повседневной жизни стало неотъемлемой частью современного быта. Одной из таких технологий является Kerio — мощный инструмент для управления сетью и. . .
|
Есть ли будущее у DVD и Blu-ray?
InfoMaster 16.01.2025
В эпоху стремительного развития цифровых технологий и повсеместного распространения потоковых сервисов вопрос о будущем физических носителей информации становится все более актуальным. Особенно остро. . .
|
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
|
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
|
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
|
Параллельное программирование: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование
Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
|
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
|
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке
В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
|
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
|
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins
В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
|
Как написать микросервис на Go/Golang с Kafka, REST и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang
Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
|