<span>N=2014
DIM A(N) AS INTEGER
DIM I, J, K AS INTEGER
FOR I = 1 TO N
INPUT A(I)
NEXT I
k = 0
if A(1) > A(2) and (A(1) mod 5 <> 0) then k = k + A(1)
if A(N) > A(N-1) and (A(N) mod 5 <> 0) then k = k + A(N)
for i = 2 to N-1
if (A(i) > A(i+1)) and (A(i) > A(i-1)) and (A(i) mod 5 <> 0) then k = k + A(1)
next i
print k
Именно бейсика у меня нет, так что писалось на VBS а потом добавлялись символы как думаю было бы правильно</span>
2^i=N
i-разрядность
N-размер алфавита
Чтобы закодировать алфавит нужно найти такую степень, чтобы 2 в этой степени была не меньше алфавита. Следавательно i=7
Оканчивается на 23 - это значит, что остаток при делении должен получится сначала 3, а потом 2.
63 / 5 = 12 и остаток 3
12/ 5 = 10 и остаток 2
10/ 5 = 2 => 223(5) = 63(10)
63/4 = 15 и остаток 3
15 /4 = 3 т.е. уже не подходит - оканчивается на 33
Дальше смотрим при делении 63 на что останется 3 в остатке..
63/30 = 2 и остаток 3
23(30) = 63(10)
Uses crt;
type mas=array[1..1000] of integer;
var a:mas;
n,i:integer;
procedure gnomesort(var arr:mas; size : Integer);
var i, j, t : Integer;
begin
i := 2;
j := 3;
while i <= size do
begin
if arr[i-1] <= arr[i] then
begin
i := j;
j := j + 1
end
else
begin
t := arr[i-1];
arr[i-1] := arr[i];
arr[i] := t;
i := i - 1;
if i = 1 then
begin
i := j;
j := j + 1
end
end
end;
end;
begin
write('Размер массива n=');
read(n);
writeln('Исходный массив:');
for i:=1 to n do
read(a[i]);
writeln;
gnomesort(a,n);
writeln('Результат сортировки:');
for i:=1 to n do
write(a[i],' ');
end.
const g = 5; v = 3;
var a: array[1..g,1..v] of integer;
i,j,maxj,minj,p:integer;
begin
writeln('Массив: ');
for i:=1 to g do
begin
for j:=1 to v do
begin
a[i,j]:=Random(101);
write(a[i,j]:4)
end;
writeln
end;
for i:=1 to g do
begin
maxj:=1;
minj:=1;
for j:=1 to v do
begin
if a[i,j]>a[i,maxj] then maxj:=j;
if a[i,j]<a[i,minj]then minj:=j;
end;
p:=a[i,maxj];
a[i,maxj]:=a[i,minj];
a[i,minj]:=p;
end;
writeln;
writeln('Преобразованный массив: ');
for i:=1 to g do
begin
for j:=1 to v do write(a[i,j]:4);
writeln
end;
end.