Один профессор философии написал статью. В этой статье не было изображений, таблиц, схем. Только текст. Поэтому статья имела небольшой информационный объём, равный 20 Кбайтам. В ней было 10240 символов.
Какой информационный объём в байтах занимала 1 страница, если известно, что одна страница содержала 32 строки и в каждой строке было 20 символов?
В ответе напишите только одно число, без добавления единиц измерения.
Понятно, что х>3, поскольку в системах счисления с x≤3 невозможно записать цифру 3.
Пусть x=4. x²=16, x³=64, ...
Поскольку даже минимально возможное значение х в третьей степени превышает 63, можно утверждать, что степеней выше 3 в представлении числа 63 нет.
Следовательно, 63=ax²+2x+3, ax²+2x-60=0, x=4,5,6, ...
Если х=8, то х²=64, поэтому для x>7 получаем а=0 и уравнение приобретает вид 2х-60=0 ⇒ х=30. Первое значение х найдено.
При х=4,5,6,7 получаем a=(60-2x)/x², a>0.
x=4 ⇒ a=(60-2×4)/4² = 52/16 = 4 - целое, подходит
x=5 ⇒ a=(60-2×5)/25 = 50/25 =2 - целое, подходит
x=6 ⇒ a=(60-2×6)/36 = 48/36 - нецелое
x=7 ⇒ a=(60-2×7)/49 = 46/49 - нецелое
Получили три значения x: 4, 5, 30
Проверим их.
1)х=4
63/4 = 15, остаток 3
15/4 = 3, остаток 2
3/4 = 0, остаток 3
Выписываем остатки в обратном порядке: 63=323₄
2) х=5
63/5 = 12, остаток 3
12/5 = 2, остаток 2
2/6 = 0, остаток 2
Выписываем остатки в обратном порядке: 63=223₅
3)х=30
63/30 = 2, остаток 3
2/30 = 0, остаток 2
Выписываем остатки в обратном порядке: 63=23₃₀
ответ: 4, 5, 30
const
n=10;
var
a:array[1..n] of integer;
i,k,t,imin,imax:integer;
begin
randomize; { инициализация датчика пчевдослучайных чисел }
Writeln('*** Исходный массив ***');
for i:=1 to n do begin
a[i]:=random(20); { интервал [0;19] }
Write(a[i]:4)
end;
Writeln;
{ 1. меняем местами правую и левую половины }
Writeln('*** 1 ***');
k:=n div 2;
for i:=1 to k do begin
t:=a[i]; a[i]:=a[i+k]; a[i+k]:=t
end;
for i:=1 to n do Write(a[i]:4);
Writeln;
{ 2. Элементы массива, большие 10, заменяем на 100 }
for i:=1 to k do
if a[i]>10 then a[i]:=100;
Writeln('*** 2 ***');
for i:=1 to n do Write(a[i]:4);
Writeln;
{ 3. Удаляем максимальный элемент, вставляем 0 перед минимальным }
{ замороченная задача ! }
Writeln('*** Исходный массив ***');
for i:=1 to n do begin
a[i]:=random(50)+1; { интервал [1;49] }
Write(a[i]:4)
end;
Writeln; Writeln('*** 3 ***');
imin:=1; imax:=1;
for i:=2 to n do
if a[i]>a[imax] then imax:=i
else
if a[i]<a[imin] then imin:=i;
if imin < imax then begin { минимальный встречается раньше максимального }
{ подвигаем вправо на 1 все элементы от imin и до imax }
for i:=imax-1 downto imin do a[i+1]:=a[i];
a[imin]:=0 { вставляем 0 в позицию imin }
end
else begin { минимальный встречается позже максимального }
{ подвигаем влево на 1 элементы от imax до imin -1 }
for i:=imax to imin-1 do a[i]:=a[i+1];
a[imin-1]:=0; { вставляем 0 в позицию перед imin }
end;
for i:=1 to n do Write(a[i]:4);
Writeln
end.
Пример
*** Исходный массив ***
14 1 11 7 14 8 12 8 1 14
*** 1 ***
8 12 8 1 14 14 1 11 7 14
*** 2 ***
8 100 8 1 100 14 1 11 7 14
*** Исходный массив ***
24 36 25 4 42 42 16 39 45 44
*** 3 ***
24 36 25 0 4 42 42 16 39 44
Задание 2
const
n=10;
var
a:array[1..n] of integer;
i:integer;
begin
randomize; { инициализация датчика пчевдослучайных чисел }
Writeln('*** Исходный массив ***');
for i:=1 to n do begin
a[i]:=random(20); { интервал [0;19] }
Write(a[i]:4)
end;
Writeln;
{ 1. выводим нечетные элементы }
Writeln('*** 1 ***');
for i:=1 to n do
if a[i] mod 2 <>0 then Write(a[i]:4);
Writeln;
{ 2. Элементы на четных позициях обнуляем }
i:=2;
while i<=n do begin
a[i]:=0;
i:=i+2
end;
Writeln('*** 2 ***');
for i:=1 to n do Write(a[i]:4);
Writeln
end.
Пример
*** Исходный массив ***
12 0 14 8 13 17 3 1 12 17
*** 1 ***
13 17 3 1 17
*** 2 ***
12 0 14 0 13 0 3 0 12 0
Замечание:
Третью подзадачу решить в такой постановке невозможно.
В самом деле, требуется удалить последний нечетный элемент, а перед третьим элементом вставить ноль. Что делать, если этим последним нечетным окажется третий?