Const n=20; var a:array[1..n] of integer; i,j,t,x,i1,i2:integer; begin Randomize; Writeln('Исходный массив:'); for i:=1 to n do begin a[i]:=Random(21); Write(a[i],' ') end; Writeln; for i:=1 to n-1 do for j:=1 to n-i do if a[j]<a[j+1] then begin t:=a[j]; a[j]:=a[j+1]; a[j+1]:=t end; Writeln('Отсортированный массив:'); for i:=1 to n do Write(a[i],' '); Writeln; write('x = '); readln(x); i1:=1; i2:=n; repeat i:=(i1+i2) div 2; if a[i]>x then i1:=(i1+i2) div 2+1; if a[i]<x then i2:=(i1+i2) div 2-1; until (a[i]=x)or(i1>i2); if a[i]=x then begin writeln('Искомый(ые) номер(а) элемента(ов):'); while (i>0)and(a[i]=x) do i:=i-1;i:=i+1; while (i<=n)and(a[i]=x) do begin write(i,' '); i:=i+1; end; end else writeln('Элемент не найден'); writeln; end. Pascal ABC.
Все удачные наборы команд должны включать остановку на отметке 11 футов. На отметку 1 фут робот может попасть с одной команды A; на отметку 2 фута - с команд AA и B (всего 2 набора команд); на отметку 3 фута - с команд AAA, AB, BA и C (4 набора). Так как за одну команду робот может переместиться на 1, 2 или 3 фута, то для подсчета количества наборов команд, позволяющих роботу попасть на отметки N > 3, можно использовать формулу K(N) = K(N-1)+K(N-2)+K(N-3). K(4) = K(3)+K(2)+K(1) = 4+2+1 = 7 K(5) = K(4)+K(3)+K(2) = 7+4+2 = 13 K(6) = K(5)+K(4)+K(3) = 13+7+4 = 24 K(7) = K(6)+K(5)+K(4) = 24+13+7 = 44 K(8) = K(7)+K(6)+K(5) = 44+24+13 = 81 K(9) = K(8)+K(7)+K(6) = 81+44+24 = 149 K(10) = K(9)+K(8)+K(7) = 149+81+44 = 274 K(11) = K(10)+K(9)+K(8) = 274+149+81 = 504 Так как вторая часть пути робота также имеет длину 11, то общее количество удачных наборов команд = 504*504 = 254016
Объяснение:
text