Начни с учебников программирования для начинающих:
Вирт, "Алгоритмы и структуры данных"
Кормен, "Алгоритмы. Вводный курс".
И нет, школьная математика не поможет. Нужна дискретная математика. Целые числа, матлогика, множества, графы и т.д. - это всё подразделы дискретной математики.
Что касается чисел Фибоначчи, то тут удобнее всего использовать динамическое программирование: когда мы движемся от старта к финишу, на каждом шаге вычисляя новое значение:
F[0] = 0
F[1] = 1
F[2] = F[0] + F[1]
F[3] = F[1] + F[2]
F[4] = F[3] + F[4]
...
F[N] = F[N - 2] + F[N - 1]
Маркус АмбреллаУченик (22)
1 неделю назад
Благодарю Вас за совет! Но всё равно, чувствую что знаний школьной математики не хватает. Почитал, наверное, четверть книги Вирта. Понял не очень многое: он там уже оперирует математикой. Придётся подтягивать,
А по дискретке есть какие-нибудь годные книги, зарекомендовавшие себя в глазах специалистов?
Собственно, сам синтаксис не вызывает сложности. У меня другая проблема: не умею решать задачи. Почти всегда, за исключением фигни типа "вывести массив/матрицу", "найти min и max число" и т.п.
Вот, сегодня попалась задача:
Написать программу, которая запрашивает число N и выводит первые N чисел последовательности
Фибоначчи (N первых чисел: 0, 1, 1, 2, 3, 5, 8, ...)
Я вообще только узнал, что такое число Фибоначчи. Но как с этим работать - без понятия. Смотрю на условие задачи и как идиот, ничего в голове родить не могу. И так всегда. Синтаксис языка Java, как инструмент, я освоил, но пользоваться этим инструментом не умею. Я не умею решать задачи... У меня проблемы с абстрактно-логическим и алгоритмическим мышлением.
Такое лечится? Решил изучать математику с 7 по 11 класс. Возможно, это поможет прокачать мозг... Также хотел приступить к алгоритмам и стр-рам данных Н. Вирта, но понял там очень мало. Не хватает пререквизитов - базовых знаний по математике и правильно настроенных мозгов.
Помогите советом! Премного благодарен!