Сумма четных из первых N чисел Фибоначчи - Prolog

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста с задачей: Дано число. Проверить, является ли оно суммой четных чисел из n первых чисел Фибоначчи. Найти число n
Нужно что бы выводило номер на котором будет как раз будет сумма числа. Например для 44 это будет 10. Но и еще что бы выводило позиции до следующего четного числа. Т.е. вводим S=44, а в ответе выдало 10,11,12

Решение задачи: «Сумма четных из первых N чисел Фибоначчи»

textual
Листинг программы
sum_chet(N, A, I, SUM):-
    I<N,
    I1 is I + 1,
        fib1(I1, FIBNUM),                                                             /* вот тута<-----------------------
    ( chet(FIBNUM) -> SUM1 is SUM + FIBNUM ; SUM1 is SUM ),
    sum_chet(N, A, I1, SUM1).

Объяснение кода листинга программы

  1. sum_chet(N, A, I, SUM):- - определение функции с четырьмя аргументами: N (количество чисел Фибоначчи для которых нужно найти сумму четных), A (неизвестное значение), I (индекс текущего числа Фибоначчи), SUM (сумма четных чисел Фибоначчи).
  2. I<N - проверка, что индекс текущего числа Фибоначчи меньше заданного количества чисел.
  3. I1 is I + 1 - присваивание нового значения индексу, увеличивая его на единицу.
  4. fib1(I1, FIBNUM) - вызов функции fib1, которая вычисляет число Фибоначчи с заданным индексом. Значение числа Фибоначчи сохраняется в переменной FIBNUM.
  5. ( chet(FIBNUM) -> SUM1 is SUM + FIBNUM ; SUM1 is SUM) - условная конструкция, которая проверяет, является ли число FIBNUM четным. Если это так, то к сумме SUM добавляется значение FIBNUM, иначе значение SUM1 остается неизменным.
  6. sum_chet(N, A, I1, SUM1). - рекурсивный вызов функции sum_chet с новыми значениями аргументов: N, A, I1, SUM1. Список вызовов функции sum_chet:
  7. sum_chet(N, A, I, SUM).
  8. sum_chet(N, A, I1, SUM1).
  9. sum_chet(N, A, I2, SUM2).
  10. sum_chet(N, A, I3, SUM3).
  11. sum_chet(N, A, I4, SUM4).
  12. sum_chet(N, A, I5, SUM5).
  13. sum_chet(N, A, I6, SUM6).
  14. sum_chet(N, A, I7, SUM7).
  15. sum_chet(N, A, I8, SUM8).
  16. sum_chet(N, A, I9, SUM9).
  17. sum_chet(N, A, I10, SUM10).
  18. sum_chet(N, A, I11, SUM11).
  19. sum_chet(N, A, I12, SUM12).
  20. sum_chet(N, A, I13, SUM13).
  21. sum_chet(N, A, I14, SUM14).
  22. sum_chet(N, A, I15, SUM15).
  23. sum_chet(N, A, I16, SUM16).
  24. sum_chet(N, A, I17, SUM17).
  25. sum_chet(N, A, I18, SUM18).
  26. sum_chet(N, A, I19, SUM19).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.556 из 5
Похожие ответы