На рисунке – схема дорог, связывающих города А, Б, В, Г, Д, Е, К, Л, М. По каждой дороге можно двигаться только в одном направлении, указанном стрелкой. Сколько существует различных путей, ведущих из города А в город М и проходящих через город В?
Команда 1: Из числа 1 можно выполнить 2 команды, получится: 1) 1+2=3 2) 1*3=3 Команда 2: C каждым полученным числом выполняем еще по 2 команды: Первое число: 1) 3+2=5 2) 6*3=18 Второе число: 1) 3+2=5 2) 6*3=18 Команда 3: У нас получилось 4 числа, проделаем то же самое Первое число: 1) 5+2=7 2) 5*3=15 Второе число: 1)18+2=20 2)18*3=54 Третье число: 1) 5+2=7 2) 5*3=15 Четвертое число : 1)18+2=20 2)18*3=54 В итоге, у нас получилось 4 различных числа (так как при выполнении со второй командой, числа получались те же самые)
// PascalABC.NET 3.0, сборка 1076 const n=20; { количество дат } type TDate=record d:1..31; m:1..12; y:word end; var dates:array[1..n] of TDate; i:byte; s,st:string;
begin Randomize; for i:=1 to n do begin s:=''; With dates[i] do begin d:=Random(27)+1; Str(d,st); if Length(st)=1 then st:='0'+st; s:=s+st+'.'; m:=Random(12)+1; Str(m,st); if Length(st)=1 then st:='0'+st; s:=s+st+'.'; y:=Random(51)+1960; Str(y,st); s:=s+st; if m in [3..5] then s:=s+' - весенняя'; Writeln(s) end end end.
Из числа 1 можно выполнить 2 команды, получится:
1) 1+2=3
2) 1*3=3
Команда 2:
C каждым полученным числом выполняем еще по 2 команды:
Первое число: 1) 3+2=5
2) 6*3=18
Второе число: 1) 3+2=5
2) 6*3=18
Команда 3:
У нас получилось 4 числа, проделаем то же самое
Первое число:
1) 5+2=7
2) 5*3=15
Второе число:
1)18+2=20
2)18*3=54
Третье число:
1) 5+2=7
2) 5*3=15
Четвертое число :
1)18+2=20
2)18*3=54
В итоге, у нас получилось 4 различных числа (так как при выполнении со второй командой, числа получались те же самые)
const
n=20; { количество дат }
type
TDate=record
d:1..31;
m:1..12;
y:word
end;
var
dates:array[1..n] of TDate;
i:byte;
s,st:string;
begin
Randomize;
for i:=1 to n do begin
s:='';
With dates[i] do begin
d:=Random(27)+1;
Str(d,st);
if Length(st)=1 then st:='0'+st;
s:=s+st+'.';
m:=Random(12)+1;
Str(m,st);
if Length(st)=1 then st:='0'+st;
s:=s+st+'.';
y:=Random(51)+1960;
Str(y,st);
s:=s+st;
if m in [3..5] then s:=s+' - весенняя';
Writeln(s)
end
end
end.
Тестовое решение:
22.12.1979
21.10.1975
25.03.1980 - весенняя
23.04.1967 - весенняя
09.10.1967
16.05.1965 - весенняя
09.08.1996
05.10.2001
10.11.1985
18.08.1970
08.10.1983
01.12.2005
01.01.1994
09.11.1962
14.09.1979
24.03.2008 - весенняя
14.01.2003
22.04.1990 - весенняя
18.08.1969
16.05.2009 - весенняя