
Другие языки программирования и технологии
Можете подсказать алгоритм для решение задачи?
Собственно задача на фото...


если я правильно понял условие:
1) каждое число Фибоначчи может быть использовано только 1 раз. даже соседи уже использованного вычеркиваются из потенциальных кандидатов
2) первый член последовательности (F₁=1) под запретом, но про второй (F₂=1) ничего не сказано :)
но если я прав по первому пункту, число 12 можно получить только суммой 8 + 3 + 1, значит F₂ в ходу
3) не сказано, что нужно найти максимальное число храмов, просто любое допустимое
в таком случае эта задача имеет решение всегда, если расстояние > 0
гуглим Фибоначчиеву систему счисления, в ней можно единственным способом записать любое натуральное число, причем два подряд числа Фибоначчи использовать просто не получится из за особенностей распределения чисел.
алгоритм:
выписываем числа Фибоначчи начиная с F₂, пока они не перевалят нужное нам расстояние
вычитаем числа Фибоначчи из нашего числа от большего к меньшему (можно сразу пропускать смежные числа, оба эти числа сразу вычесть не удастся) пока не достигнем нуля.
число вычитаний + 1 будет количеством храмов.
например расстояние 1000000
выписываем числа
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229, 832040
1000000 - 832040 = 167960
167960 - 121393 = 46567
46567 - 46368 = 199
199 - 144 = 55
55 - 34 = 21
21 - 21 = 0
6 вычитаний, ответ 7
по контрольным примерам
n = 12
12 - 8 = 4
4 - 3 = 1
1 - 1 = 0
3 вычета, ответ 4
n = 2
2 - 2 = 0
1 вычет, ответ 2
1) каждое число Фибоначчи может быть использовано только 1 раз. даже соседи уже использованного вычеркиваются из потенциальных кандидатов
2) первый член последовательности (F₁=1) под запретом, но про второй (F₂=1) ничего не сказано :)
но если я прав по первому пункту, число 12 можно получить только суммой 8 + 3 + 1, значит F₂ в ходу
3) не сказано, что нужно найти максимальное число храмов, просто любое допустимое
в таком случае эта задача имеет решение всегда, если расстояние > 0
гуглим Фибоначчиеву систему счисления, в ней можно единственным способом записать любое натуральное число, причем два подряд числа Фибоначчи использовать просто не получится из за особенностей распределения чисел.
алгоритм:
выписываем числа Фибоначчи начиная с F₂, пока они не перевалят нужное нам расстояние
вычитаем числа Фибоначчи из нашего числа от большего к меньшему (можно сразу пропускать смежные числа, оба эти числа сразу вычесть не удастся) пока не достигнем нуля.
число вычитаний + 1 будет количеством храмов.
например расстояние 1000000
выписываем числа
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229, 832040
1000000 - 832040 = 167960
167960 - 121393 = 46567
46567 - 46368 = 199
199 - 144 = 55
55 - 34 = 21
21 - 21 = 0
6 вычитаний, ответ 7
по контрольным примерам
n = 12
12 - 8 = 4
4 - 3 = 1
1 - 1 = 0
3 вычета, ответ 4
n = 2
2 - 2 = 0
1 вычет, ответ 2
Артем. Божков.
Большое спасибо за развернутый ответ!
Дмитрий Подольный
ошибся немного. 55 тоже число Фибоначчи, а я его пропустил. получается ответ 6 для 1000000
Условие - чушь. Расстояние между любыми соседними храмами, равное 1, удовлетворяет условию задачи. Нигде не сказано, что расстояния между храмами должны быть разными. При этом длина отрезка должна быть целой, иначе решения нет.
Артем. Божков.
то что там много воды это и так понятно но... с чего такой вывод что расстояние между ними 1?
Похожие вопросы
- Создание алгоритма для решения задачи на Ассемблере!
- Помогите составить алгоритм решения задачи
- подскажите алгоритм решения задачи: Действительное число а. Использовать только умножение. Получить а^64 за 6 операций.
- подскажите алгоритм решения 386 задачи на acmp.ru http://www.acmp.ru/index.asp?main=task&id_task=386
- Недавно начал изучать программирование (не с полного нуля), но мои решения задач слишком громоздкое, это нормально?
- Какой алгоритм для решения данной задачи в Кумире?
- Нужна помощь в решении задачи по С++ связанная с матрицами
- Информатика. Помощь в решении задач по массивам
- Решение задач по паскалю
- Объясните словами как составить циклический алгоритм к этой задаче