Будем решать задачу от обратного: будем последовательно у каждой вершины указывать, сколько из этой вершины существует путей в М. При этом мы будем пользоваться следующей логикой:
Допустим, у нас есть вершины А, Б, В и Г. И нам надо посчитать количество путей из А в Г. При этом из А есть дороги только в Б и В. При этом из Б в Г существует 5 маршрутов, а из В в Г — 7. Тогда количество маршрутов из А в Г равно количеству маршрутов из Б в Г плюс количество маршрутов из В в Г: 5+7=12.
Воспользуемся этим правилом:
Из К в М, очевидно, ведёт одна дорога. Равно как и из Л в М. Значит, из И в М будут вести две дороги: 1+1=2.
Из Ж есть путь только в И, поэтому кол-во маршрутов из Ж в М также равно 2. Следовательно, количество маршрутов из З в М равно 4, так как из З можно попасть в Ж (2 маршрута) или в И (2 маршрута): 2+2=4. Аналогично из Е: количество маршрутов равно также 4.
Теперь посчитаем количество маршрутов из точки В (Б и Г мы не можем посчитать из-за незнания маршуртов в точке В, а точку Д — из-за незнания точки Г).
Из точки В можно попасть в Е (4 маршрута), или в Ж (2 маршрута) или в З (4 маршрута), то есть 4+2+4=10 всего.
Значит, из Б будет 4 (точка Е) + 10 (точка В) = 14 маршрутов.
Из точки Г — 4 (точка З) + 10 (точка В) = 14 маршрутов.
Значит, из точки Д будет 14 (точка Г) + 4 (точка З) = 18 маршрутов.
Значит, из точки А будет 14 (Б) + 10 (В) + 14 (Г) + 18 (Д) = 56 маршрутов.
<span>Ответ: 56 маршрутов.</span>
Var a,b:real;
begin
write('Введите а и b: ');
readln(a,b);
if b=0 then
writeln('На ноль делить нельзя!')
else writeln('a/b=',a/b);
<span>end. </span>
<em>Проверено на fpc 3.0.0 </em>
const
m=6; // строк
n=9; // столбцов
var
a:array[1..m,1..n] of integer;
i,j,k1,k2,s,k:integer;
begin
Writeln('Введите границы диапазона: '); Read(k1,k2);
Randomize;
s:=0; k:=0;
for i:=1 to m do begin
for j:=1 to n do begin
a[i,j]:=Random(199)-99; // [-99;99]
Write(a[i,j]:4);
if (a[i,j]>=k1) and (a[i,j]<=k2) then begin
Inc(k); s:=s+a[i,j]
end
end;
Writeln
end;
Writeln('Отобрано элементов: ',k,', их сумма равна ',s)
end.
<u>Пример</u>
Введите границы диапазона:
-20 55
-2 -52 -11 -12 70 -15 90 -51 75
-54 -92 32 54 -72 -24 -40 -37 -20
0 -14 -79 -1 -39 -34 39 47 34
-91 -98 -68 -16 -56 -55 97 66 59
-48 -67 -34 92 -77 12 -67 -23 -90
75 85 65 -98 -58 -53 -6 34 33
Отобрано элементов: 18, их сумма равна 188
===== PascalABC.NET =====
begin
for var i := 1 to integer.MaxValue-2 do
if (i+1)*(i+2) - i * i = 50 then
begin
Print(i, i+1, i+2);
break
end
end.
Результат: 16 17 18
1)3<=11
sum=0+3
i=3+2
2)5<=11
sum=3+3
i=5+2
3)7<=11
sum=6+3
i=7+2
4)9<=11
sum=9+3
i=9+2
5)11<=11
sum=12+3
i=11+2
6)13>11 Выполнено!
sum=15!