Определить количество бактерий на заданный момент времени - Free Pascal

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

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

Помогите пожалуйста написать программу { Имеется n бактерий красного цвета. Через 1 такт времени красная бактерия меняется на зелёную, затем через 1 такт времени делится на красную и зелёную. Сколько будет всех бактерий через k тактов времени? Описать и использовать функцию Fib(N), вычисляющую N-й элемент последовательности чисел Фибоначчи. Рекомендуемый интерфейс: 1# Введите число красных бактерий: 10 Введите количество тактов: 9 Общее число бактерий через 9 тактов равно 550 !Внимание! Запрещается использовать циклы, рекурсию и операторы выбора. Оператор присваивания допустим только один. }

Решение задачи: «Определить количество бактерий на заданный момент времени»

textual
Листинг программы
var kb,kt:integer;
function fib(n:integer):longint;
begin
 fib:=trunc(exp(n*ln((sqrt(5)+1)/2))/sqrt(5)+0.5)
end;
begin
 write('Введите число красных бактерий: ');readln(kb);
 write('Введите количество тактов: ');readln(kt);
 write('Общее число бактерий через ',kt,' тактов равно ',kb*fib(kt+1))
end.

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

  1. Объявлены две переменные kb и kt типа integer (целое число).
  2. Определена функция fib, которая принимает целочисленный аргумент n и возвращает значение типа longint (длинное целое число).
  3. Внутри функции fib происходит вычисление числа Фибоначчи для заданного аргумента n.
  4. В основной части программы пользователю предлагается ввести количество красных бактерий и количество тактов.
  5. Затем происходит вызов функции fib с аргументом kt+1, так как в условии задачи сказано на заданный момент времени, а не на момент ввода.
  6. И наконец, выводится общее количество бактерий через заданное количество тактов.

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

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