Для кодирования значений температуры воздуха (целое число в интервале от –50 до 40) используется двоичный код. какова минимальная длина двоичного кода? объясните подробно
Минимальная длина двоичного кода-7. N=2^i, где N-количество вариантов В данном случае, N=40-(-50)=90 2^6=64, 2^7=128. 90 находится между этими двумя степенями, показатель степени всегда целое число. Округляется в большую сторону. Если то оцени ответ и отметь его лучшим
Var n,fibn:real; i:integer; begin readln(n); if n<=0 then writeln('Не существует чисел Фиббоначи меньше 0') else begin i:=0; while fibn<n do begin fibn:=(power((1+sqrt(5))/2,i)-power((1-sqrt(5))/2,i))/sqrt(5); inc(i); end; writeln((power((1+sqrt(5))/2,i)-power((1-sqrt(5))/2,i))/sqrt(5)-1); end; end.
//В лоб
Var sum,n,buf,fib0,fib1:integer;
function fibb(fib0,fib1:integer):integer; begin result:=fib0+fib1; end;
begin fib0:=0; fib1:=1; readln(n); if n<=0 then writeln('Не существует чисел Фиббоначи меньше 0') else begin if fibb(fib0,fib1)>=n then sum:=0 else begin while fibb(fib0,fib1)<n do begin buf:=fib1; fib1:=fibb(fib0,fib1); fib0:=buf; end; sum:=fibb(fib1,fibb(fib0,fib1))-1; end; writeln(sum); end; end.
Var n,fibn:real; i:integer; begin readln(n); if n<=0 then writeln('Не существует чисел Фиббоначи меньше 0') else begin i:=0; while fibn<n do begin fibn:=(power((1+sqrt(5))/2,i)-power((1-sqrt(5))/2,i))/sqrt(5); inc(i); end; writeln((power((1+sqrt(5))/2,i)-power((1-sqrt(5))/2,i))/sqrt(5)-1); end; end.
//В лоб
Var sum,n,buf,fib0,fib1:integer;
function fibb(fib0,fib1:integer):integer; begin result:=fib0+fib1; end;
begin fib0:=0; fib1:=1; readln(n); if n<=0 then writeln('Не существует чисел Фиббоначи меньше 0') else begin if fibb(fib0,fib1)>=n then sum:=0 else begin while fibb(fib0,fib1)<n do begin buf:=fib1; fib1:=fibb(fib0,fib1); fib0:=buf; end; sum:=fibb(fib1,fibb(fib0,fib1))-1; end; writeln(sum); end; end.