Определить количество бактерий на заданный момент времени - 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.
Объяснение кода листинга программы
- Объявлены две переменные kb и kt типа integer (целое число).
- Определена функция fib, которая принимает целочисленный аргумент n и возвращает значение типа longint (длинное целое число).
- Внутри функции fib происходит вычисление числа Фибоначчи для заданного аргумента n.
- В основной части программы пользователю предлагается ввести количество красных бактерий и количество тактов.
- Затем происходит вызов функции fib с аргументом kt+1, так как в условии задачи сказано
на заданный момент времени
, а нена момент ввода
. - И наконец, выводится общее количество бактерий через заданное количество тактов.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д