If (1<x) and (x<2)
then begin x:=x+1; y:=0; end
else begin x:=0; y:=y+1; end;
var
a, b:integer;
begin
write('a = '); readln(a);
write('b = '); readln(b);
if a <> b then
if a > b then
b := a
else
a := b
else
begin
a := 0;
b := 0;
end;
writeln('a = ', a);
writeln('b = ', b);
readln;
end.
var a:Integer;
begin
readln( a );
write( (a div 1000) * ((a div 100) mod 10) + ((a div 10) mod 10) * (a mod 10) );
end.
Пояснение:
a - 4-значное число, тогда:
a div 1000 - первая цифра числа.
(a div 100) mod 10 - вторая цифра числа.
(a div 10) mod 10 - третья цифра числа.
a mod 10 - четвёртая цифра числа.
<span>ТТ в начале слов не встречается, поэтому первая Г
– – • Г
Дальше либо Е либо И.
Пускай вторая Е (ГЕ):
• – – • • – – • • – </span>
Третья либо Е, либо А, либо П.
Если третья П (ГЕП):
<span>• – – • • –
Тогда четвертая либо Е, либо А.
Пускай четвертая Е(ГЕПЕ).
</span><span> – – • • –
Пускай четвертая А(ГЕПА)
</span>– • • –
Тогда пятая только Т (ГЕПАТ)
<span>• • –
ГЕПАТЕА, ГЕПАТИТ (осмысленное слово).
</span>
Пускай вторая И (ГИ):
– – • • – – • • –
Третья либо Г либо Т.
Пускай третья Г(ГИГ):
<span>• – – • • –
Пускай третья Т (ГИТ)
</span>
– • • – – • • –
Ответ: гепатит.
<u>1) Решение методом рекурсии.</u>
<u>Программа проста в понимании, но неэффективна при больших значениях
</u>var
n: integer;
function f(i: integer): longint;
begin
if i < 2 then
f := 1
else
f := f(i - 1) + f(i - 2);
end;
begin
read(n);
writeln(f(n));
end.
<u>2) Решение методом динамического программирования. Намного быстрее метода с рекурсией.</u><u></u>
var
i, n: integer;
f: array[0..50] of longint;
begin
read(n);
f[0] := 1;
f[1] := 1;
for i := 2 to n do
f[i] := f[i - 1] + f[i - 2];
writeln(f[n]);
end.
<u>3) Решение методом моделирования. Использует меньше памяти.
</u>var
n, a, b, i: integer;
begin
read(n);
if n < 2 then
a := 1
else
begin
a := 0;
b := 1;
for i := 0 to n do
begin
b := a + b;
a := b - a;
end;
end;
writeln(a);
end.