1 Гигабайт = 2^10 Мегабайт
1 Мегабайт = 2^23 Бит
1 Гигабайт = 2^33 Бит
2^35/2^33=2^2=4 Гигабайта
931₁₀ = 1110100011₂
Очевидно, что минимальное число должно содержать минимальное количество значащих цифр. У нас есть "место", где идут три нуля подряд, следовательно, если эти три нуля сделать ведущими, в числе станет на три значащих разряда меньше. Пять циклических сдвигов дадут нам число
0001111101₂ или просто 1111101₂ = 125₁₀
Бит 8000 = байт 1000 = кбайт 1
бит 12288 = байт 1536 = кбайт 1.536
бит 16384 = байт 2048 = кбайт 2.048
бит 20480 = байт 2560 = кбайт 2.56
бит 2^15 = байт 2^12 = кбайт 2^5
бит 2^16 = байт 2^13 = кбайт 2^3
//Pascal ABC.NET 3.1 сборка 1219
Const
n=10;
Var
ar:array[1..n] of integer;
i,j,c:integer;
begin
randomize;
readln(c);
writeln('Array:');
for i:=1 to n do
begin
ar[i]:=random(-10,10);
write(ar[i]:4);
end;
for i:=1 to n-1 do
for j:=i+1 to n do
if (ar[i]>ar[j]) and (ar[i]<0) and (ar[j]<0) and (ar[i] mod c=0) and (ar[j] mod c=0) then swap(ar[i],ar[j]);
writeln;
writeln('Final array:');
for i:=1 to n do
write(ar[i]:4);
end.
Пример ввода:
2
Пример вывода:
Array:
-7 3 9 -2 7 -7 3 -6 -6 -3
Final array:
-7 3 9 -6 7 -7 3 -6 -2 -3
var x,y,z:Integer;
begin
for x:=1 to 9 do
for y:=0 to 9 do
for z:=0 to 9 do
if 3*(1000+x*100+y*10+z)=x*1000+y*100+z*10+1 then Writeln(1,x,y,z);
Readln;
end.