Алгоритм
.Алгоритм генерирует последовательность чисел Фибоначчи, сортирует ее в порядке убывания
с использованием алгоритма сортировки вставками и выбирает элементы из отсортированной последовательности,
руководствуясь определенными критериями.
Ниже перечислены шаги, выполняемые алгоритмом.
1. Принимается целое положительное число n.
2. Инициализируются переменные:
previous_fibonacci_number – значением 0,
current_fibonacci_number – значением 1,
fibonacci_numbers – списком, содержащим previous_fibonacci_number и current_fibonacci_number,
selected_fibonacci_numbers – пустым списком,
current_sum – суммой previous_fibonacci_number + current_fibonacci_number.
3. Используется цикл while, чтобы сгенерировать числа Фибоначчи до n:
1) добавить current_sum в fibonacci_numbers;
2) обновить previous_fibonacci_number значением current_fibonacci_number;
3) обновить current_fibonacci_number значением current_fibonacci_ number + previous_fibonacci_number;
4) обновить current_sum значением previous_fibonacci_number + current_ fibonacci_number;
5) продолжать выполнять цикл, пока current_sum не станет больше n;
6) отсортировать fibonacci_numbers в порядке убывания.
4. Используется цикл for для выбора чисел Фибоначчи, сумма которых дает в результате n, выполняющий следующие действия:
1) переменная sum_of_fibonacci_numbers инициализируется значением 0;
2) для каждого числа в fibonacci_numbers выполняются следующие действия:
а) если sum_of_fibonacci_numbers + number меньше или равно n, то number добавляется в selected_fibonacci_numbers и переменная sum_of_fibonacci_numbers обновляется значением sum_of_ fibonacci_numbers + number;
б) если sum_of_fibonacci_numbers равна n, то возвращается selected_fibonacci_numbers.