По каналу связи сообщения, содержащие только восемь букв: а, в, е, з, и, н, о, р. для передачи используется двоичный код, удовлетворяющий условию фано. кодовые слова для некоторых букв известны: а – 101, в – 010, и – 00. какое наименьшее количество двоичных знаков потребуется для кодирования слова невезение? примечание. условие фано означает, что ни одно кодовое слово не является началом другого кодового слова.
var a,b,c : Integer;
begin
Randomize;
a:=random(19)-9;
b:=random(19)-9;
c:=random(19)-9;
Writeln(a+' '+b+' '+c);
if((a>b)and(a>c)) then
Writeln('Наибольшее '+a)
else if(b>c) then
Writeln('Наибольшее '+b)
else
Writeln('Наибольшее '+c);
if((a<b)and(a<c)) then
Writeln('Наименьшее '+a)
else if(b<c) then
Writeln('Наименьшее '+b)
else
Writeln('Наименьшее '+c);
end.
Можно воспользоваться функций Power для возведения в степень 1/3, либо применить известную формулу
Но в обоих случаях используется (явно или скрыто) вычисление логарифма. А мы помним, что логарифм определен только для положительного аргумента.
По заданию нужно найти кубический корень из a+b. И этот корень определен для любого вещественного числа, в отличии от логарифма.
Вспоминаем:
И только теперь можно писать программу.
// PascalABC.NET 3.2, сборка 1353 от 27.11.2016
// Внимание! Если программа не работает, обновите версию!
begin
var a,b,c:real; Read(a,b);
c:=a+b;
Writeln(sign(c)*power(abs(c),1/3))
end.
Примеры
14.283 -32.17
-2.61524573390822
13.183 -13.183
0