Подсчёт чисел Фибоначчи - PascalABC.NET

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

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

Очень нужна функция подсчёта количества чётных чисел Фибоначчи (отрезок [a,b]), у которых количество чётных цифр равно количеству нечётных. Ума не приложу как делать, заранее благодарен. Числа Фибоначчи — линейная рекуррентная последовательность натуральных чисел, где первое и второе равно единице, а каждое последующее — сумме двух предыдущих: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, …

Решение задачи: «Подсчёт чисел Фибоначчи»

textual
Листинг программы
uses System.Linq;
 
type pair = KeyValuePair<integer, integer>;
var 
  a := ReadLnInteger('Начало отрезка = '); // 20
  b := ReadLnInteger('Конец отрезка  = '); // 8000;
 
begin
  var fib : integer -> integer := n ->
    Enumerable.Range(1, n).Skip(2).Aggregate(new Pair(1, 1), (seq : Pair; index : integer) -> new Pair(seq.Value, seq.Key + seq.Value)).Value;
  
  var fn := Enumerable.Range(1, integer.MaxValue - 1).Select(v -> fib(v)).SkipWhile(v -> v < a).TakeWhile(v -> v < b).
    Where(i -> IntToStr(i).ToCharArray().Select(ch -> Pos(ch, '13579') = 0 ? -1 : 1).Sum() = 0);
  writeln(fn, ' Количество = ', fn.Count());
end.

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

В этом коде используется язык программирования PascalABC.Net для подсчета чисел Фибоначчи в определенном диапазоне. Вот список действий, которые выполняются в коде:

  1. В первой строке объявляется тип данных pair, который представляет собой пару значений (ключ, значение).
  2. Затем пользователю предлагается ввести начальное значение отрезка (a) и конечное значение отрезка (b).
  3. Далее, используя LINQ-запросы, подсчитывается число Фибоначчи для диапазона от 1 до n, где n - это максимальное значение, которое можно представить в типе данных integer.
  4. Затем, используя LINQ-запросы, из этого диапазона выбираются только те числа Фибоначчи, которые меньше заданного значения a и больше заданного значения b.
  5. Наконец, выводится количество найденных чисел Фибоначчи.

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


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

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

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