Между населёнными пунктами A, B, C, D, E, F построены дороги, протяжённость которых (в километрах) приведена в таблице Определите длину кратчайшего пути между пунктами A и F, проходящего через пункт С. Передвигаться можно только по дорогам, протяжённость которых указана в таблице.
Зная количество бит в двоичной записи числа, можно посчитать количество бит в восьмеричной записи, так как из двоичной в восьмеричную систему счисления число можно привести группировкой по трем соседним разрядам, начиная с младших. Например, есть число 1100111. Сгруппируем его разряды: (1)(100)(111)=147 - в восьмеричной СС. Пусть количество разрядов 2-ичного числа равно n. Тогда количество разрядов восьмеричного числа будет n/3, деленное нацело и округленное вверх. n=7 => n/3=7/3. Округляем, будет 3. a) 10111010. n=8 => 8/3 - 3 8-ричных разряда б) 1001111000111, n=13 => 13/3 - 5 8-ричных разрядов в) A18C. Сначала найдем n. Посмотрим, сколько значащих разрядов у старшей цифры. A=1010 - 4 разряда. У остальных цифр по 4 разряда всегда. Поэтому n=3*4+4=16 => 16/3 - 6 8-ричных разрядов. г) 1375BE. 1=1 : 1 разряд => n=5*4+1=21 => 21/3 - 7 8-ричных разрядов
a) 10111010. n=8 => 8/3 - 3 8-ричных разряда
б) 1001111000111, n=13 => 13/3 - 5 8-ричных разрядов
в) A18C. Сначала найдем n. Посмотрим, сколько значащих разрядов у старшей цифры. A=1010 - 4 разряда. У остальных цифр по 4 разряда всегда. Поэтому n=3*4+4=16 => 16/3 - 6 8-ричных разрядов.
г) 1375BE.
1=1 : 1 разряд => n=5*4+1=21 => 21/3 - 7 8-ричных разрядов
var
i, a, b, n, n2, j: longint;
s: string;
flag: boolean;
begin
Write('Введите через пробел границы диапазона: ');
Readln(a, b);
if b < a then begin n := a; a := b; b := n end;
if a < 11 then a := 11;
for i := a to b do
begin
Str(i, s);
n := Length(s); n2 := n div 2; flag := true; j := 1;
repeat
flag := (s[j] = s[n - j + 1]);
j := j + 1
until (not flag) or (j > n2);
if flag then Write(i, ' ')
end;
end.
Тестовое решение:
Введите через пробел границы диапазона: 800 1500
808 818 828 838 848 858 868 878 888 898 909 919 929 939 949 959 969 979 989 999
Объяснение: