Изменить решение задачи - PascalABC.NET
Формулировка задачи:
Всем привет!
Была у меня задачка: одноклеточная амёба каждые 4 часа делится на 2 клетки. Определить, сколько амёб будет через 3, 6, 9, 12, .., 24 часа.
Решил её так:
Помогите, пожалуйста. Заранее спасибо!
Преподавателя не устроили массивы. Нужно реализовать решение без их использования. Допускаются циклы, условия, математические формулы типа экспоненты и прочая грязь.
На выводе надо получить:
| Амёба в 3 час деления: 1 |
| Амёба в 6 час деления: 2 |
| Амёба в 9 час деления: 4 |
| Амёба в 12 час деления: 8 |
| Амёба в 15 час деления: 8 |
| Амёба в 18 час деления: 16 |
| Амёба в 21 час деления: 32 |
| Амёба в 24 час деления: 64 |
Решение задачи: «Изменить решение задачи»
textual
Листинг программы
var a,i:integer;
begin
a:=1;
i:=0;
while i<=24 do
begin
i:=i+1;
if i mod 4=0 then a:=a*2;
if i mod 3=0 then writeln('Амёба в ' , i:2, ' час деления: ',a:2);
end;
end.
Объяснение кода листинга программы
- Объявлены две переменные:
aиiтипа integer (целое число). - Переменная
aинициализируется значением 1, а переменнаяiинициализируется значением 0. - Запускается цикл while, который выполняется до тех пор, пока значение переменной
iменьше или равно 24. - Внутри цикла переменная
iувеличивается на 1. - С помощью оператора mod проверяется, делится ли значение переменной
iна 4 без остатка. Если да, то значение переменнойaумножается на 2. - С помощью оператора mod проверяется, делится ли значение переменной
iна 3 без остатка. Если да, то выводится сообщениеАмёба в i час деления: aс указанием значения переменныхiиa. - Цикл while выполняется до тех пор, пока все условия не будут выполнены.
- Код заканчивается.